+1 Thanks & regards, -Prabath
On Wed, Sep 3, 2014 at 1:09 PM, Tharindu Edirisinghe <tharin...@wso2.com> wrote: > Hi Prabath, > > Thanks for the response. In that case I guess following code change would > be better than making the generate() method synchronized. > > public Association generate(String type, int expiryIn) > > throws AssociationException { > > String handle = storeId + timestamp + "-" + *getCounter()*; > > Association association = Association.generate(type, handle, > expiryIn); > > // caching the association > > cache.addToCache(association); > > // persisting in the database > > log.debug("Stroing association " + association.getHandle() > > + " in the database."); > > new > OpenIDAssociationDAO(associationStoreType).storeAssociation(association); > > return association; > > } > > > *private synchronized int getCounter(){* > > > * return counter++;* > > *}* > > > > On Wed, Sep 3, 2014 at 12:40 PM, Prabath Siriwardena <prab...@wso2.com> > wrote: > >> IIRC openid4java library expects the association handle to be in a >> specific format - so you cannot have a generated UUID there.. >> >> If you change it to UUID and test it you will see the exact issue.. >> >> Thanks & regards, >> -Prabath >> >> >> On Tue, Sep 2, 2014 at 8:47 PM, Tharindu Edirisinghe <tharin...@wso2.com> >> wrote: >> >>> I am working on some performance improvements on OpenID in Identity >>> Server (using the IS 3.2.3). The method to generate Associations is >>> synchronized and so it will lock the entire method. As I see, the reason >>> for this is to avoid duplicate values for association handle. >>> >>> >>> components/identity/org.wso2.carbon.identity.provider/3.2.0/src/main/java/org/wso2/carbon/identity/provider/openid/OpenIDServerAssociationStore.java >>> >>> >>> The generate method is synchronized. According to the code, this is >>> needed to avoid conflicts with having duplicate handle values. >>> >>> >>> public synchronized Association generate(String type, int expiryIn) >>> >>> throws AssociationException { >>> >>> String handle = storeId + timestamp + "-" + counter++; >>> >>> Association association = Association.generate(type, handle, >>> expiryIn); >>> >>> // caching the association >>> >>> cache.addToCache(association); >>> >>> // persisting in the database >>> >>> log.debug("Stroing association " + association.getHandle() >>> >>> + " in the database."); >>> >>> new >>> OpenIDAssociationDAO(associationStoreType).storeAssociation(association); >>> >>> return association; >>> >>> } >>> >>> Suggested code is below. The getUUID() method is already synchronized. >>> >>> import org.apache.ws.security.util.UUIDGenerator; >>> >>> public Association generate(String type, int expiryIn) >>> >>> throws AssociationException { >>> >>> String handle = UUIDGenerator.getUUID(); >>> >>> Association association = Association.generate(type, handle, >>> expiryIn); >>> >>> // caching the association >>> >>> cache.addToCache(association); >>> >>> // persisting in the database >>> >>> log.debug("Stroing association " + association.getHandle() >>> >>> + " in the database."); >>> >>> new >>> OpenIDAssociationDAO(associationStoreType).storeAssociation(association); >>> >>> return association; >>> >>> } >>> >>> Was there any specific requirement to generate the handle like below ? >>> storeId + timestamp + "-" + counter++; >>> >>> Any thoughts ?? >>> -- >>> >>> Thanks & Best Regards, >>> >>> Tharindu Edirisinghe >>> Software Engineer >>> >>> *WSO2 Inc* >>> *email : tharin...@wso2.com <tharin...@wso2.com> * >>> *mobile : +94 775 181586* >>> *www: :http://wso2.com <http://wso2.com/> *lean . enterprise . >>> middleware >>> >>> >>> >>> _______________________________________________ >>> Dev mailing list >>> Dev@wso2.org >>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>> >>> >> >> >> -- >> Thanks & Regards, >> Prabath >> >> Twitter : @prabath >> LinkedIn : http://www.linkedin.com/in/prabathsiriwardena >> >> Mobile : +94 71 809 6732 >> >> http://blog.facilelogin.com >> http://blog.api-security.org >> > > > > -- > > Thanks & Best Regards, > > Tharindu Edirisinghe > Software Engineer > > *WSO2 Inc* > *email : tharin...@wso2.com <tharin...@wso2.com> * > *mobile : +94 775 181586* > *www: :http://wso2.com <http://wso2.com/> *lean . enterprise . middleware > > > -- Thanks & Regards, Prabath Twitter : @prabath LinkedIn : http://www.linkedin.com/in/prabathsiriwardena Mobile : +94 71 809 6732 http://blog.facilelogin.com http://blog.api-security.org
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev