Why can't we simply re-initialize the User object with the correct identity store when it is deserialized, using the readObject() method?
On Sat, Mar 11, 2017 at 10:41 PM, Jayanga Kaushalya <[email protected]> wrote: > Hi Harsha, > > Yes I understand. Either you have to check whether the Identity Store is > null in the User object or we should change each method in the User class > which uses Identity Store to throw custom checked exception when the > Identity Store is null and handle it accordingly when using User object. > Personally I am +1 for the second approach. Please advice if there are any > better approaches. > > Thanks! > > *Jayanga Kaushalya* > Software Engineer > Mobile: +94777860160 <+94%2077%20786%200160> > WSO2 Inc. | http://wso2.com > lean.enterprise.middleware > > On Sat, Mar 11, 2017 at 9:27 PM, Harsha Thirimanna <[email protected]> > wrote: > >> Hi Jayanga, >> >> Yes, that is possible to do and I felt it as a workaround to instead of >> calling getClaim API in user object. >> But at once i didn't feel that i can't call getClaim API because i don't >> know whether that User object is coming from Cache or not. It can be >> cached by different component even. >> Is that make sense to provide such API in user object if it not possible >> to give the result all the time in sameway. We have to make it consistent. >> Because , the developer has to know whether this User object came from >> Cache or not. If it is from cache, then developer has to get the claims by >> using RealmService again. >> >> *Harsha Thirimanna* >> *Associate Tech Lead | WSO2* >> >> Email: [email protected] >> Mob: +94715186770 <+94%2071%20518%206770> >> Blog: http://harshathirimanna.blogspot.com/ >> Twitter: http://twitter.com/harshathirimann >> Linked-In: linked-in: http://www.linkedin.com/pub/ha >> rsha-thirimanna/10/ab8/122 >> <http://wso2.com/signature> >> >> On Sat, Mar 11, 2017 at 8:49 PM, Hasintha Indrajee <[email protected]> >> wrote: >> >>> Hi Jayanga, >>> >>> So what happens if we want to store user objects and then later if we >>> want to retrieve user objects and try to access claims ? . Here we are >>> storing user objects in authentication context, not in the identity store. >>> And how are we storing user objects in the cache when the instance of >>> identity store is neither serializable nor transient ? >>> >>> On Sat, Mar 11, 2017 at 8:34 PM, Jayanga Kaushalya <[email protected]> >>> wrote: >>> >>>> Hi Harsha, >>>> >>>> It was designed to be like that. User object will be cached in the >>>> IdentityStore. So when you retrieving the user object from IdentityStore >>>> again, it will be most probably from cache instead of connector. >>>> >>>> Thanks! >>>> >>>> *Jayanga Kaushalya* >>>> Software Engineer >>>> Mobile: +94777860160 <+94%2077%20786%200160> >>>> WSO2 Inc. | http://wso2.com >>>> lean.enterprise.middleware >>>> >>>> On Sat, Mar 11, 2017 at 7:41 PM, Harsha Thirimanna <[email protected]> >>>> wrote: >>>> >>>>> Hi All, >>>>> >>>>> In identity gateway, we have to cache the User object that is >>>>> retrieved from user core within the authentication context and session >>>>> context. After some times we have to get that user object and want to get >>>>> the claims since it has the claim API within user object itself. But >>>>> because of the IdentityStore is non Serializable and make it transient, >>>>> it will not stored with the User object when it cached, so we can't call >>>>> the getCalim method in User object now. >>>>> >>>>> What I did is, get the user unique id from the user object that is >>>>> stored in the cache and call the RealmService and get the User object >>>>> again >>>>> from the user core when it required. Is that the right behaviour that we >>>>> expect in the new user core design or did I missed something ? >>>>> >>>>> >>>>> public class User implements Serializable { >>>>> private static final long serialVersionUID = 21578845544565554L; >>>>> private String uniqueUserId; >>>>> private String domainName; >>>>> private String state; >>>>> private transient IdentityStore identityStore; >>>>> >>>>> thanks >>>>> >>>>> *Harsha Thirimanna* >>>>> *Associate Tech Lead | WSO2* >>>>> >>>>> Email: [email protected] >>>>> Mob: +94715186770 <+94%2071%20518%206770> >>>>> Blog: http://harshathirimanna.blogspot.com/ >>>>> Twitter: http://twitter.com/harshathirimann >>>>> Linked-In: linked-in: http://www.linkedin.com/pub/ha >>>>> rsha-thirimanna/10/ab8/122 >>>>> <http://wso2.com/signature> >>>>> >>>> >>>> >>>> _______________________________________________ >>>> Architecture mailing list >>>> [email protected] >>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>> >>>> >>> >>> >>> -- >>> Hasintha Indrajee >>> WSO2, Inc. >>> Mobile:+94 771892453 <+94%2077%20189%202453> >>> >>> >> >> *Harsha Thirimanna* >> *Associate Tech Lead | WSO2* >> >> Email: [email protected] >> Mob: +94715186770 <+94%2071%20518%206770> >> Blog: http://harshathirimanna.blogspot.com/ >> Twitter: http://twitter.com/harshathirimann >> Linked-In: linked-in: http://www.linkedin.com/pub/ha >> rsha-thirimanna/10/ab8/122 >> <http://wso2.com/signature> >> >> On Sat, Mar 11, 2017 at 8:49 PM, Hasintha Indrajee <[email protected]> >> wrote: >> >>> Hi Jayanga, >>> >>> So what happens if we want to store user objects and then later if we >>> want to retrieve user objects and try to access claims ? . Here we are >>> storing user objects in authentication context, not in the identity store. >>> And how are we storing user objects in the cache when the instance of >>> identity store is neither serializable nor transient ? >>> >>> On Sat, Mar 11, 2017 at 8:34 PM, Jayanga Kaushalya <[email protected]> >>> wrote: >>> >>>> Hi Harsha, >>>> >>>> It was designed to be like that. User object will be cached in the >>>> IdentityStore. So when you retrieving the user object from IdentityStore >>>> again, it will be most probably from cache instead of connector. >>>> >>>> Thanks! >>>> >>>> *Jayanga Kaushalya* >>>> Software Engineer >>>> Mobile: +94777860160 <+94%2077%20786%200160> >>>> WSO2 Inc. | http://wso2.com >>>> lean.enterprise.middleware >>>> >>>> On Sat, Mar 11, 2017 at 7:41 PM, Harsha Thirimanna <[email protected]> >>>> wrote: >>>> >>>>> Hi All, >>>>> >>>>> In identity gateway, we have to cache the User object that is >>>>> retrieved from user core within the authentication context and session >>>>> context. After some times we have to get that user object and want to get >>>>> the claims since it has the claim API within user object itself. But >>>>> because of the IdentityStore is non Serializable and make it transient, >>>>> it will not stored with the User object when it cached, so we can't call >>>>> the getCalim method in User object now. >>>>> >>>>> What I did is, get the user unique id from the user object that is >>>>> stored in the cache and call the RealmService and get the User object >>>>> again >>>>> from the user core when it required. Is that the right behaviour that we >>>>> expect in the new user core design or did I missed something ? >>>>> >>>>> >>>>> public class User implements Serializable { >>>>> private static final long serialVersionUID = 21578845544565554L; >>>>> private String uniqueUserId; >>>>> private String domainName; >>>>> private String state; >>>>> private transient IdentityStore identityStore; >>>>> >>>>> thanks >>>>> >>>>> *Harsha Thirimanna* >>>>> *Associate Tech Lead | WSO2* >>>>> >>>>> Email: [email protected] >>>>> Mob: +94715186770 <+94%2071%20518%206770> >>>>> Blog: http://harshathirimanna.blogspot.com/ >>>>> Twitter: http://twitter.com/harshathirimann >>>>> Linked-In: linked-in: http://www.linkedin.com/pub/ha >>>>> rsha-thirimanna/10/ab8/122 >>>>> <http://wso2.com/signature> >>>>> >>>> >>>> >>>> _______________________________________________ >>>> Architecture mailing list >>>> [email protected] >>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>> >>>> >>> >>> >>> -- >>> Hasintha Indrajee >>> WSO2, Inc. >>> Mobile:+94 771892453 <+94%2077%20189%202453> >>> >>> >> > -- Thanks & Regards, *Johann Dilantha Nallathamby* Technical Lead & Product Lead of WSO2 Identity Server Governance Technologies Team WSO2, Inc. lean.enterprise.middleware Mobile - *+94777776950* Blog - *http://nallaa.wordpress.com <http://nallaa.wordpress.com>*
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
