0

我计划创建一个授权位置列表供用户登录(如果他们有多个位置),但是目前在用户登录之前我无法执行此操作。当他们成功通过身份验证时会获取该列表。

我想知道是否有人知道如何检查角色列表并计算用户拥有的数量。如果列表中有多个匹配项,我想以数组形式返回列表。

我正在考虑使用本文中找到的 hasRole,但是我不确定如何将它与存储为 xml 的另一个列表进行比较。

有任何想法吗?

4

2 回答 2

1

我不确定您到底想要什么,但是要获得用户的权限,请先致电

Authentication a  = SecurityContextHolder.getContext().getAuthentication();

然后你可以打电话

Set<String> roles = AuthorityUtils.authorityListToSet(a.getAuthorities());

这将为您提供作为一组字符串的角色,您可以随意检查或计数。

于 2012-12-02T19:54:55.613 回答
1

当您想要获取未经身份验证的用户的角色时,您需要访问存储用户对角色的分配的存储。

如果您将用户和角色存储在 LDAP 中,那么您需要查询该 LDAP。

于 2012-12-04T20:59:12.550 回答