我打算创建一个授权位置列表供用户登录,如果他们有多个,但是目前我无法在用户登录之前执行此操作。列表在成功进行身份验证时会被抓取。
我想知道是否有人知道如何检查角色列表并计算用户拥有的数量。如果列表中有多个匹配项,我想返回数组中的列表。
我正在考虑在This Article中使用hasRole但是我不确定如何将其与另一个列表进行比较,该列表存储为xml。
有什么想法吗?
答案 0 :(得分:1)
我不确定你想要什么,但要获得用户的权限,请先致电
Authentication a = SecurityContextHolder.getContext().getAuthentication();
然后你可以打电话
Set<String> roles = AuthorityUtils.authorityListToSet(a.getAuthorities());
它将为您提供一组字符串的角色,您可以根据需要查看或计算。
答案 1 :(得分:1)
如果要获取未经身份验证的用户的角色,则需要访问将用户分配存储到角色的存储。
如果您将用户和角色存储在LDAP中,则需要查询该LDAP。