Hi Vidura/Thusitha,

Can we have an update on this please?


Thanks & Regards,
Ishara Cooray
Senior Software Engineer
Mobile : +9477 262 9512 <+94%2077%20262%209512>
WSO2, Inc. | http://wso2.com/
Lean . Enterprise . Middleware

On Mon, Jan 16, 2017 at 1:13 PM, Thusitha Thilina Dayaratne <
[email protected]> wrote:

> Hi Sagara,
>
> ViduraN has almost implemented this. We will schedule a meeting tomorrow
> or day after tomorrow to discuss the current implementation.
>
> Thanks
> Thusitha
>
> On Mon, Jan 16, 2017 at 12:44 PM, Sagara Gunathunga <[email protected]>
> wrote:
>
>>
>> Can we have an update or review meeting on this ?
>>
>> Thanks !
>>
>>
>> On Thu, Jan 5, 2017 at 9:50 AM, Ishara Cooray <[email protected]> wrote:
>>
>>> Sounds good.
>>> Thanks Kishanthan.
>>>
>>> Thanks & Regards,
>>> Ishara Cooray
>>> Senior Software Engineer
>>> Mobile : +9477 262 9512 <+94%2077%20262%209512>
>>> WSO2, Inc. | http://wso2.com/
>>> Lean . Enterprise . Middleware
>>>
>>> On Wed, Jan 4, 2017 at 5:30 PM, Kishanthan Thangarajah <
>>> [email protected]> wrote:
>>>
>>>> We are working on this. We couldn't progress much last week due to
>>>> other priorities. The plan is to deliver in two weeks time.
>>>>
>>>> On Tue, Jan 3, 2017 at 1:40 PM, Ishara Cooray <[email protected]> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> What could be the status of this? Do we have a time line defined?
>>>>>
>>>>> Thanks & Regards,
>>>>> Ishara Cooray
>>>>> Senior Software Engineer
>>>>> Mobile : +9477 262 9512 <+94%2077%20262%209512>
>>>>> WSO2, Inc. | http://wso2.com/
>>>>> Lean . Enterprise . Middleware
>>>>>
>>>>> On Fri, Dec 9, 2016 at 2:18 PM, Sagara Gunathunga <[email protected]>
>>>>> wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> On Fri, Dec 9, 2016 at 2:15 PM, Sanjeewa Malalgoda <[email protected]
>>>>>> > wrote:
>>>>>>
>>>>>>> Hi All,
>>>>>>> Please find inline comments.
>>>>>>>
>>>>>>> On Fri, Dec 9, 2016 at 12:49 PM, Sagara Gunathunga <[email protected]>
>>>>>>> wrote:
>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Thu, Dec 8, 2016 at 6:59 PM, Ishara Cooray <[email protected]>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> To overcome the above limitation where we cannot plug custom
>>>>>>>>> authentication, i came up with the below approach.
>>>>>>>>>
>>>>>>>>> Having one interceptor and delegate authentication to an
>>>>>>>>> interface. Implementation of the interface is configurable so that we 
>>>>>>>>> can
>>>>>>>>> plug custom authentication as well.
>>>>>>>>>
>>>>>>>>> [image: Inline image 1]
>>>>>>>>>
>>>>>>>>> One limitation here is we can have only one auth type active at a
>>>>>>>>> time.
>>>>>>>>>
>>>>>>>>> Hi Sanjeewa,
>>>>>>>>>
>>>>>>>>> Shall we continue with this approach until we get a proper fix
>>>>>>>>> from msf4j?
>>>>>>>>>
>>>>>>>>
>>>>>>>> It's ok to use above  approach as a temporary workaround till we
>>>>>>>> get proper solution from MSF4J, but please make sure to implement only
>>>>>>>> required features in a simple manner because you have to discard this 
>>>>>>>> and
>>>>>>>> have to use proper MSF4J approach before any release.
>>>>>>>>
>>>>>>>> By looking at issues faced by API-M and IS teams we have few issues
>>>>>>>> to solve,
>>>>>>>>
>>>>>>>>
>>>>>>>> 1. Ability to apply/skip Interceptors in global and per-service
>>>>>>>> levels
>>>>>>>> 2. Ability to define the order of Interceptors
>>>>>>>> 3. Ability to intercept response messages
>>>>>>>>
>>>>>>> Ability to build security and user context in a way we can access it
>>>>>>> from service implementation.
>>>>>>> Most of the other platforms allowed to do that and people who work
>>>>>>> on service implementation can get real advantage of that.
>>>>>>>
>>>>>>>>
>>>>>>>> The good news is JAX-RS 2.0 spec is already solved these issues and
>>>>>>>> we can adopt their concepts easily to MSF4J programming model. Please 
>>>>>>>> refer
>>>>>>>> solution for each issue below.
>>>>>>>>
>>>>>>>>
>>>>>>>> *1. Ability to intercept response messages *
>>>>>>>>
>>>>>>>> JAX-RS defines 2 interfaces as ContainerRequestFilter[1] and
>>>>>>>> ContainerResponseFilter[2] to intercept request and response messages, 
>>>>>>>> IMO
>>>>>>>> these 2 interfaces are much clean and standard then current MSF4J
>>>>>>>> Interceptor[3] concept where response intercepting is not simple.
>>>>>>>>
>>>>>>>>
>>>>>>>> *2.  Ability to apply/skip Interceptors  in global and per-service
>>>>>>>> levels *
>>>>>>>>
>>>>>>>> Annotation driven NameBinding[4] concept defined for JAX-RS Filters
>>>>>>>> is very flexible and easy to use as well. This NameBinding[4] feature
>>>>>>>> enables to apply JAX-RS Filters at global, per-Resource or even
>>>>>>>> per-sub-Resource level.
>>>>>>>>
>>>>>>>> *3. Define the order of Interceptors *
>>>>>>>>
>>>>>>>> JAX-RS defines several message processing extension points such as
>>>>>>>> Pre, PreMatch, Post, it's possible to apply Filters during some of 
>>>>>>>> these
>>>>>>>> message processing stages, as an example refer PreMatching[5] 
>>>>>>>> annotation.
>>>>>>>>
>>>>>>>> Further, to define fine grained order of Filters JAX-RS reuse
>>>>>>>> Java's standard Priority[1] annotation, through this annotation numeric
>>>>>>>> priority value can be define per Filters basis. JAX-RS already provide 
>>>>>>>> set
>>>>>>>> of pre-defined Priories here[6]
>>>>>>>>
>>>>>>> Ability to engage in different phases is definitely a good feature.
>>>>>>> But there can be situations where we need to engage multiple 
>>>>>>> interceptors
>>>>>>> at same phase with order of execution. As example i need to engage both
>>>>>>> authenticate and authorization interceptors in pre invoke phase but
>>>>>>> authenticator first and then authorizer as 2nd interceptor. In that 
>>>>>>> case we
>>>>>>> need to mention phase and order within phase in some way. It seems CXF 
>>>>>>> and
>>>>>>> other run times already handled this in different ways.
>>>>>>>
>>>>>>
>>>>>> This requirement is well handled by the JAX-RS concept I described
>>>>>> above.
>>>>>>
>>>>>> Thanks !
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> [1]http://cxf.apache.org/docs/interceptors.html
>>>>>>>
>>>>>>> Thanks,
>>>>>>> sanjeewa.
>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> I have setup a meeting in next Wednesday, if we can cater current
>>>>>>>> requirements using above concepts let's go ahead with JAX-RS Filters.
>>>>>>>>
>>>>>>>>
>>>>>>>> [1] - https://jax-rs-spec.java.net/nonav/2.0-SNAPSHOT/apidocs/in
>>>>>>>> dex.html?javax/ws/rs/container/ContainerRequestFilter.html
>>>>>>>> [2] - https://jax-rs-spec.java.net/nonav/2.0-SNAPSHOT/apidocs/ja
>>>>>>>> vax/ws/rs/container/ContainerResponseFilter.html
>>>>>>>> [3] - https://github.com/wso2/msf4j/blob/master/core/src/main/ja
>>>>>>>> va/org/wso2/msf4j/Interceptor.java
>>>>>>>> [4] - https://jax-rs-spec.java.net/nonav/2.0-SNAPSHOT/apidocs/in
>>>>>>>> dex.html?javax/ws/rs/NameBinding.html
>>>>>>>> [5] - https://jax-rs-spec.java.net/nonav/2.0-SNAPSHOT/apidocs/in
>>>>>>>> dex.html?javax/ws/rs/container/PreMatching.html
>>>>>>>> [6] - https://jax-rs-spec.java.net/nonav/2.0/apidocs/javax/ws/rs
>>>>>>>> /Priorities.html
>>>>>>>>
>>>>>>>> Thanks !
>>>>>>>>
>>>>>>>>> ​
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Thanks & Regards,
>>>>>>>>> Ishara Cooray
>>>>>>>>> Senior Software Engineer
>>>>>>>>> Mobile : +9477 262 9512 <+94%2077%20262%209512>
>>>>>>>>> WSO2, Inc. | http://wso2.com/
>>>>>>>>> Lean . Enterprise . Middleware
>>>>>>>>>
>>>>>>>>> On Thu, Dec 8, 2016 at 11:23 AM, Ishara Cooray <[email protected]>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> Hi Thilina,
>>>>>>>>>>>
>>>>>>>>>>> And also if there are multiple interceptors and one interceptor
>>>>>>>>>>> returns false from its' preCaall then the invocation chain will not
>>>>>>>>>>> continue further.
>>>>>>>>>>>
>>>>>>>>>>> So Is this implies if preCall returns 'true' then the invocation
>>>>>>>>>>> chain will continue further?
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Yes
>>>>>>>>>>
>>>>>>>>>> I was thinking to return 'true' if particular auth header
>>>>>>>>>> type(Basic, Bearer) is not found in an interceptor, so that it will 
>>>>>>>>>> check
>>>>>>>>>> the other available interceptors.
>>>>>>>>>> But i guess this approach may also fail if the request header
>>>>>>>>>> type is not provided may be by mistake.
>>>>>>>>>> Because all the interceptors will return true and will it be
>>>>>>>>>> taken as a valid authorization?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Thanks & Regards,
>>>>>>>>>> Ishara Cooray
>>>>>>>>>> Senior Software Engineer
>>>>>>>>>> Mobile : +9477 262 9512 <+94%2077%20262%209512>
>>>>>>>>>> WSO2, Inc. | http://wso2.com/
>>>>>>>>>> Lean . Enterprise . Middleware
>>>>>>>>>>
>>>>>>>>>> On Wed, Dec 7, 2016 at 5:25 PM, Afkham Azeez <[email protected]>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Wed, Dec 7, 2016 at 5:17 PM, Ishara Cooray <[email protected]>
>>>>>>>>>>> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi Thilina,
>>>>>>>>>>>>
>>>>>>>>>>>> And also if there are multiple interceptors and one interceptor
>>>>>>>>>>>> returns false from its' preCaall then the invocation chain will not
>>>>>>>>>>>> continue further.
>>>>>>>>>>>>
>>>>>>>>>>>> So Is this implies if preCall returns 'true' then the
>>>>>>>>>>>> invocation chain will continue further?
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Yes
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>> If that is the case we can return true in our overridden
>>>>>>>>>>>> preCall method so that it goes to next Interceptor.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks & Regards,
>>>>>>>>>>>> Ishara Cooray
>>>>>>>>>>>> Senior Software Engineer
>>>>>>>>>>>> Mobile : +9477 262 9512 <077%20262%209512>
>>>>>>>>>>>> WSO2, Inc. | http://wso2.com/
>>>>>>>>>>>> Lean . Enterprise . Middleware
>>>>>>>>>>>>
>>>>>>>>>>>> On Wed, Dec 7, 2016 at 2:33 PM, Afkham Azeez <[email protected]>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> How about supporting JAXRS filters?
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Wed, Dec 7, 2016 at 12:52 PM, Thusitha Thilina Dayaratne <
>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Hi Ishara,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> As you have mentioned, with the current architecture we can't
>>>>>>>>>>>>>> set the specific interceptor for a particular service but rather 
>>>>>>>>>>>>>> to all
>>>>>>>>>>>>>> services in the registry. And also if there are multiple 
>>>>>>>>>>>>>> interceptors and
>>>>>>>>>>>>>> one interceptor returns false from its' preCaall then the 
>>>>>>>>>>>>>> invocation chain
>>>>>>>>>>>>>> will not continue further.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> IMHO we have few options
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>    - We can implement a way to register specific
>>>>>>>>>>>>>>    interceptors to specific services
>>>>>>>>>>>>>>    - We can support JAX-RS Filters
>>>>>>>>>>>>>>    - We can provide a way to skip some interceptors for
>>>>>>>>>>>>>>    specific services
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> @Azeez WDYT?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Thanks
>>>>>>>>>>>>>> Thusitha
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Wed, Dec 7, 2016 at 10:56 AM, Ishara Cooray <
>>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> HI,
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> We are using MSF4J interceptor for securing REST APIs in API
>>>>>>>>>>>>>>> Manager. [1] As for now Interceptor registration happens at the 
>>>>>>>>>>>>>>> class level
>>>>>>>>>>>>>>> @Component annotation as below.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> @Component(
>>>>>>>>>>>>>>>         name = "org.wso2.carbon.apimgt.rest.a
>>>>>>>>>>>>>>> pi.common.interceptors.OAUTH2SecurityInterceptor",
>>>>>>>>>>>>>>>         service = Interceptor.class,
>>>>>>>>>>>>>>>         immediate = true
>>>>>>>>>>>>>>> )
>>>>>>>>>>>>>>> The limitations here are
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>    1. it is not possible to have more than one interceptor
>>>>>>>>>>>>>>>    that will dynamically pick when an api call is 
>>>>>>>>>>>>>>> received(Because the order
>>>>>>>>>>>>>>>    matters and we are not certain which interceptor will take 
>>>>>>>>>>>>>>> into effect ).
>>>>>>>>>>>>>>>    2. We cannot explicitly configure to use Custom
>>>>>>>>>>>>>>>    interceptors because of the above[1] reason.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Do we have any plans for these limitations?
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Thanks & Regards,
>>>>>>>>>>>>>>> Ishara Cooray
>>>>>>>>>>>>>>> Senior Software Engineer
>>>>>>>>>>>>>>> Mobile : +9477 262 9512 <+94%2077%20262%209512>
>>>>>>>>>>>>>>> WSO2, Inc. | http://wso2.com/
>>>>>>>>>>>>>>> Lean . Enterprise . Middleware
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>>> Dev mailing list
>>>>>>>>>>>>>>> [email protected]
>>>>>>>>>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> --
>>>>>>>>>>>>>> Thusitha Dayaratne
>>>>>>>>>>>>>> Software Engineer
>>>>>>>>>>>>>> WSO2 Inc. - lean . enterprise . middleware |  wso2.com
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Mobile  +94712756809 <071%20275%206809>
>>>>>>>>>>>>>> Blog      alokayasoya.blogspot.com
>>>>>>>>>>>>>> About    http://about.me/thusithathilina
>>>>>>>>>>>>>> <http://wso2.com/signature>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>> Architecture mailing list
>>>>>>>>>>>>>> [email protected]
>>>>>>>>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> --
>>>>>>>>>>>>> *Afkham Azeez*
>>>>>>>>>>>>> Senior Director, Platform Architecture; WSO2, Inc.;
>>>>>>>>>>>>> http://wso2.com
>>>>>>>>>>>>> Member; Apache Software Foundation; http://www.apache.org/
>>>>>>>>>>>>> * <http://www.apache.org/>*
>>>>>>>>>>>>> *email: **[email protected]* <[email protected]>
>>>>>>>>>>>>> * cell: +94 77 3320919 <+94%2077%20332%200919>blog: *
>>>>>>>>>>>>> *http://blog.afkham.org* <http://blog.afkham.org>
>>>>>>>>>>>>> *twitter: **http://twitter.com/afkham_azeez*
>>>>>>>>>>>>> <http://twitter.com/afkham_azeez>
>>>>>>>>>>>>> *linked-in: **http://lk.linkedin.com/in/afkhamazeez
>>>>>>>>>>>>> <http://lk.linkedin.com/in/afkhamazeez>*
>>>>>>>>>>>>>
>>>>>>>>>>>>> *Lean . Enterprise . Middleware*
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> *Afkham Azeez*
>>>>>>>>>>> Senior Director, Platform Architecture; WSO2, Inc.;
>>>>>>>>>>> http://wso2.com
>>>>>>>>>>> Member; Apache Software Foundation; http://www.apache.org/
>>>>>>>>>>> * <http://www.apache.org/>*
>>>>>>>>>>> *email: **[email protected]* <[email protected]>
>>>>>>>>>>> * cell: +94 77 3320919 <+94%2077%20332%200919>blog: *
>>>>>>>>>>> *http://blog.afkham.org* <http://blog.afkham.org>
>>>>>>>>>>> *twitter: **http://twitter.com/afkham_azeez*
>>>>>>>>>>> <http://twitter.com/afkham_azeez>
>>>>>>>>>>> *linked-in: **http://lk.linkedin.com/in/afkhamazeez
>>>>>>>>>>> <http://lk.linkedin.com/in/afkhamazeez>*
>>>>>>>>>>>
>>>>>>>>>>> *Lean . Enterprise . Middleware*
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Dev mailing list
>>>>>>>>> [email protected]
>>>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Sagara Gunathunga
>>>>>>>>
>>>>>>>> Associate Director / Architect; WSO2, Inc.;  http://wso2.com
>>>>>>>> V.P Apache Web Services;    http://ws.apache.org/
>>>>>>>> Linkedin; http://www.linkedin.com/in/ssagara
>>>>>>>> Blog ;  http://ssagara.blogspot.com
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>>
>>>>>>> *Sanjeewa Malalgoda*
>>>>>>> WSO2 Inc.
>>>>>>> Mobile : +94713068779 <+94%2071%20306%208779>
>>>>>>>
>>>>>>> <http://sanjeewamalalgoda.blogspot.com/>blog
>>>>>>> :http://sanjeewamalalgoda.blogspot.com/
>>>>>>> <http://sanjeewamalalgoda.blogspot.com/>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Sagara Gunathunga
>>>>>>
>>>>>> Associate Director / Architect; WSO2, Inc.;  http://wso2.com
>>>>>> V.P Apache Web Services;    http://ws.apache.org/
>>>>>> Linkedin; http://www.linkedin.com/in/ssagara
>>>>>> Blog ;  http://ssagara.blogspot.com
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> *Kishanthan Thangarajah*
>>>> Technical Lead,
>>>> Platform Technologies Team,
>>>> WSO2, Inc.
>>>> lean.enterprise.middleware
>>>>
>>>> Mobile - +94773426635 <+94%2077%20342%206635>
>>>> Blog - *http://kishanthan.wordpress.com
>>>> <http://kishanthan.wordpress.com>*
>>>> Twitter - *http://twitter.com/kishanthan
>>>> <http://twitter.com/kishanthan>*
>>>>
>>>
>>>
>>
>>
>> --
>> Sagara Gunathunga
>>
>> Associate Director / Architect; WSO2, Inc.;  http://wso2.com
>> V.P Apache Web Services;    http://ws.apache.org/
>> Linkedin; http://www.linkedin.com/in/ssagara
>> Blog ;  http://ssagara.blogspot.com
>>
>>
>
>
> --
> Thusitha Dayaratne
> Software Engineer
> WSO2 Inc. - lean . enterprise . middleware |  wso2.com
>
> Mobile  +94712756809 <+94%2071%20275%206809>
> Blog      alokayasoya.blogspot.com
> About    http://about.me/thusithathilina
> <http://wso2.com/signature>
>
>
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to