0

我有一个扩展 AbstractUserStoreManager 的类。

我的问题目前与 getRoleListOfUser() 方法有关。此处返回的列表显示在 UI 的 Unassigned Role 列表中,而不是 Assigned Role 列表中。即该方法的行为似乎是返回所有可能的角色,而不是分配给用户的角色。

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

    @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。

任何建议,将不胜感激。

4

1 回答 1

0

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

于 2013-03-29T15:51:18.140 回答