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;
}

10-08 13:41