我有一个扩展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。
任何建议都将不胜感激。
答案 0 :(得分:0)
4.1.1版本在AD和LDAP中正确地将角色与用户相关联。这个版本尚未推出,可能还有三个星期。但我正在试验的alpha版本在角色和域关联方面有很多改进。