wso2身份服务器4.10只读自定义UserManagerStore类

时间:2013-03-20 18:49:15

标签: wso2

我有一个扩展AbstractUserStoreManager的类。

目前我的问题是使用getRoleListOfUser()方法。此处返回的列表显示在UI中的“未分配的角色”列表中,而不是显示在“分配的角色”列表中。即该方法似乎表现得像返回所有可能的角色,而不是分配给用户的角色。

我需要使用此角色列表设置内部属性吗?这是一个已知的错误吗?

    @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;
}

我的实现与现有示例不同,因为我使用Web服务调用而不是使用jdbc直接查询用户存储。

但是,这似乎与此问题类似:ldap-user-store-not-working ,除了我使用自己的类而不是LDAP。

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:0)

4.1.1版本在AD和LDAP中正确地将角色与用户相关联。这个版本尚未推出,可能还有三个星期。但我正在试验的alpha版本在角色和域关联方面有很多改进。