Hello Isura!

I did override the methods except the doGetInternalRoleListOfUser because
the AbstractUserStoreManager already implements it.

Here is my custom store manager in [1] and my "internal" class in [2]. In
[3], you will have the user store properties managed by my user store.

The goal of the test is to retrieve the roles of a user from the secondary
user store implemented by this code by using the interface of the identity
server. So you will have a "getRoleListOfUser()" which appears in the logs.

[1] CustomUserStoreManager.java
[2] CustomUserStoreManagerDSComponent.java
[3] CustomUserStoreProperties.java

2017-08-18 12:10 GMT+02:00 Isura Karunaratne <[email protected]>:

> Hi Thomas,
>
> Did you override doCheckExistingUser method in your custom user store
> manager? In order to view the roles list of the user, following methods
> should be overridden.
>
>
>    -
>
>    doCheckExistingUser
>
>    -
>
>    doGetExternalRoleListOfUser
>
>    -
>
>    doGetInternalRoleListOfUser
>
>
>
> If the issue still occurs after overriding the doCheckExistingUser method,
> please attach your sample code. So we can help you faster.
>
> Thanks
> Isura.
>
> On Fri, Aug 18, 2017 at 3:09 PM, Thomas LEGRAND <
> [email protected]> wrote:
>
>> Hello again!
>>
>> During my tests, I "reinstalled" a new Identity Server v5.3.0 where I let
>> the default configuration for the primary user store.
>> I configured my custom secondary user store which retrieves data from a
>> database. This custom user store is implemented by extending te
>> AbstractUserStoreManager class and I generated a OSGi bundle which I
>> dropped in the repository/components/dropins directory.
>>
>> So I can see my list of users coming from this user store when I display
>> it from the identity server. But, when I want to display the roles of a
>> suer, I noticed that the primary user store is called (in my case, that was
>> the default org.wso2.carbon.user.core.ldap.ReadWriteLDAPUserStoreManager
>> configured in the user-mgt.xml configuration file) to check if the user
>> existed and to retrieve its roles.
>>
>> Did I miss something in my implementation of the user store to have the
>> effect of the primary user store taking the lead to retrieve the roles
>> physically located on the secondary user store?
>>
>> Regards,
>>
>> Thomas
>>
>> 2017-08-17 11:22 GMT+02:00 Thomas LEGRAND <[email protected]>:
>>
>>> Hello,
>>>
>>> I really don't understand why my "external" roles don't appear in the
>>> list and why no role methods are called in my connector because, when I
>>> configure a LDAP one, I can see the roles retrieved from the LDAP are
>>> listed with the internal ones.
>>>
>>> I set the log level to DEBUG to see that the LDAP user store is calling
>>> the internal role retrieval method before checking if the user exists:
>>>
>>> [2017-08-17 11:18:00,647] DEBUG 
>>> {org.wso2.carbon.user.core.common.AbstractUserStoreManager}
>>> -  Retrieving internal roles for user name :  a.bresson and search filter *
>>> [2017-08-17 11:18:00,648] DEBUG {org.wso2.carbon.user.core.lda
>>> p.ReadOnlyLDAPUserStoreManager} -  Searching for user a.bresson
>>>
>>> But in my case, the user check method isn't even called!
>>>
>>> If I continue with the logs, I can see that:
>>>
>>> [2017-08-17 11:18:00,653] DEBUG {org.wso2.carbon.user.core.lda
>>> p.ReadOnlyLDAPUserStoreManager} -  Reading roles with the
>>> memberOfProperty Property: memberOf
>>>
>>> Following this source code [1], it seems that it executes the method to
>>> retrieve the external roles. On my side, in my own connector, that does not
>>> even go there because it doesn't even check if the user exists.
>>>
>>> What am I missing?
>>>
>>> Regards,
>>>
>>> Thomas
>>>
>>> [1] https://github.com/biliroy/carbon4-kernel/blob/master/co
>>> re/org.wso2.carbon.user.core/src/main/java/org/wso2/carbon/
>>> user/core/ldap/ReadOnlyLDAPUserStoreManager.java#L1724
>>>
>>> 2017-08-16 9:56 GMT+02:00 Thomas LEGRAND <[email protected]>:
>>>
>>>> Hello everybody,
>>>>
>>>> I am writing a custom user store for the Identity Server and I
>>>> successfully retrieved my list of users from my database. But when I try to
>>>> display the roles of a user by clicking on the "View Roles" button [1],
>>>> only the internal roles are displayed.
>>>> I implemented the methods doGetExternalRoleListOfUser(),
>>>>  doGetDisplayNamesForInternalRole(), doGetSharedRoleListOfUser() to
>>>> log something on the INFO level but nothing happens.
>>>>
>>>> Can someone tell me which method to implement?
>>>>
>>>> Regards,
>>>>
>>>> Thomas
>>>>
>>>> [1] [image: Images intégrées 1]
>>>>
>>>
>>>
>>
>> _______________________________________________
>> Dev mailing list
>> [email protected]
>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>
>>
>
>
> --
>
> *Isura Dilhara Karunaratne*
> Associate Technical Lead | WSO2
> Email: [email protected]
> Mob : +94 772 254 810 <+94%2077%20225%204810>
> Blog : http://isurad.blogspot.com/
>
>
>
>

Attachment: CustomUserStoreManagerDSComponent.java
Description: Binary data

Attachment: CustomUserStoreManager.java
Description: Binary data

Attachment: CustomUserStoreProperties.java
Description: Binary data

_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to