Authentication auth = SecurityContextHolder.getContext().getAuthentication();
Collection<? extends GrantedAuthority> roles = auth.getAuthorities();
如何检查
roles
是否包含像 "ROLE_ADMIN"
这样的特定权限? 最佳答案
我不知道任何内置函数,但这里有一个您可以使用的实用方法。
if (userHasAuthority("ROLE_ADMIN")) { ... }
.
public static boolean userHasAuthority(String authority)
{
List<GrantedAuthority> authorities = getUserAuthorities();
for (GrantedAuthority grantedAuthority : authorities) {
if (authority.equals(grantedAuthority.getAuthority())) {
return true;
}
}
return false;
}