春季安全检查无需提交

时间:2012-12-01 02:14:56

标签: spring spring-mvc spring-security

我打算创建一个授权位置列表供用户登录,如果他们有多个,但是目前我无法在用户登录之前执行此操作。列表在成功进行身份验证时会被抓取。

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

我正在考虑在This Article中使用hasRole但是我不确定如何将其与另一个列表进行比较,该列表存储为xml。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

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

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

然后你可以打电话

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

它将为您提供一组字符串的角色,您可以根据需要查看或计算。

答案 1 :(得分:1)

如果要获取未经身份验证的用户的角色,则需要访问将用户分配存储到角色的存储。

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