That's Good to know. Thanks a lot 😊
> Date: Tue, 17 Mar 2015 19:00:37 +0000 > From: [email protected] > To: [email protected] > Subject: Re: is CXF Oauth2 Services can be used as Singleton ? > > Hi > > The context fields are in fact thread safe proxies, so yes, when you > have them injected into singletons it is all thread safe. > > In some internal code (which is not expected to be portable) I just > avoided writing the pure JAX-RS context code, that is all.. > > Thanks, Sergey > > > On 17/03/15 12:47, Venkata Pavan Kumar Sannisetty wrote: > > Hi , > > I have configured CXF OAuth2 services such as > > AuthorizationCodeGrantService, ImplicitGrantService, AccessTokenService > > registered using spring configuration. While going through how to configure > > these services using spring XML i have found that the service beans which > > are referenced directly from the jaxrs:server endpoint declarations are > > treated by the runtime as singleton JAX-RS root resources. > > (http://cxf.apache.org/docs/jaxrs-services-configuration.html#JAXRSServicesConfiguration-JAXRSServicesConfiguration-FromSpring) > > Example: > > <bean id="authCodeGrantService" > > class="org.apache.cxf.rs.security.oauth2.services.AuthorizationCodeGrantService" > > parent="redirectionBasedOAuth2Service"> </bean> <bean > > id="implicitGrantService" > > class="org.apache.cxf.rs.security.oauth2.services.ImplicitGrantService" > > parent="redirectionBasedOAuth2Service"> </bean> > > <jaxrs:server id="oauthServer" address="/"> > > <jaxrs:serviceBeans> <ref bean="authCodeGrantService"/> > > <ref bean="implicitGrantService"/> > > </jaxrs:serviceBeans> <jaxrs:providers> > > <ref bean="jsonProvider"/> </jaxrs:providers> > > </jaxrs:server>The above code snippet creates a singleton resources of both > > authCodeGrantService and implicitGrantService. But when looking at the > > source code of these two services i found these two services have been > > using MessageContext cxf class which is per request specific and it is used > > as a member variable in AbstractOAuthService. > > If MessageContext class is per request specific and it is a member variable > > the service can't be used as singleton. Please correct me if i am wrong as > > i am new to cxf. AbstractOAuthservice is the baseclass for > > AuthorizationCodeGrantService, ImplicitGrantService, AccessTokenService and > > TokenRevocationService. > > At the same time i have looked at the source code of > > AbstractAccessTokenValidator which is also using MessageContext as member > > variable but in the get method it is a bit different. > > public MessageContext getMessageContext() { return mc != null ? mc : > > new MessageContextImpl(PhaseInterceptorChain.getCurrentMessage()); } > > I just wanted to know whether these services can be used as singletons or > > not ? If this should a bug/enhancement please let me know so that i can > > flag for the same. > > Thanks,Pavan.P.S: CXF Rocks > > >
