具有自定义UserManagerStore类的wso2 identity server 4.10只读

具有自定义UserManagerStore类的wso2 identity server 4.10只读,wso2,Wso2,我有一个扩展AbstractUserStoreManager的类 我目前的问题是getRoleListOfUser()方法。此处返回的列表显示在UI中的未分配角色列表中,而不是已分配角色列表中。i、 e.该方法的行为似乎是返回所有可能的角色,而不是分配给用户的角色 是否需要为该角色列表设置内部属性?这是已知的bug吗 @Override public String[] getRoleListOfUser(String userName) throws UserStoreE

我有一个扩展AbstractUserStoreManager的类

我目前的问题是getRoleListOfUser()方法。此处返回的列表显示在UI中的未分配角色列表中,而不是已分配角色列表中。i、 e.该方法的行为似乎是返回所有可能的角色,而不是分配给用户的角色

是否需要为该角色列表设置内部属性?这是已知的bug吗

    @Override
public String[] getRoleListOfUser(String userName)
        throws UserStoreException {

    // check whether roles exist in cache
    try {
        String[] names = getRoleListOfUserFromCache(this.tenantId, userName);
        if (names != null) {
            return names;
        }
    } catch (Exception e) {
        // if not exist in cache, continue
    }

    List<String> roles = new ArrayList<String>();

    // **code removed ** - but, roles is populated by a web service.

    String [] roleList = (String[]) roles.toArray(new String[roles.size()]);

    addToUserRolesCache(this.tenantId, userName, roleList);

            // TODO: make roleList apply to assigned roles, rather than unassigned roles!

    return roleList;
}
@覆盖
公共字符串[]GetRoleListFuser(字符串用户名)
抛出UserStoreException{
//检查缓存中是否存在角色
试一试{
字符串[]名称=getRoleListOfUserFromCache(this.tenantId,用户名);
如果(名称!=null){
返回姓名;
}
}捕获(例外e){
//如果缓存中不存在,请继续
}
列表角色=新的ArrayList();
//**代码已删除**-但是,角色由web服务填充。
字符串[]roleList=(字符串[])roles.toArray(新字符串[roles.size()]);
addToUserRolesCache(this.tenantId、用户名、角色列表);
//TODO:使角色列表应用于已分配的角色,而不是未分配的角色!
返回角色扮演者;
}
我的实现与现有的示例不同,因为我使用web服务调用,而不是使用jdbc直接查询用户存储

但是,这似乎与此问题类似: ,除了我使用自己的类而不是LDAP之外


如有任何建议,我们将不胜感激。

4.1.1版本将角色与AD和LDAP中的用户正确关联。这个版本还没有发布,可能还要三个星期。但是我正在试验的alpha版本在角色和域关联方面有很多改进