Java 考虑到角色层次结构,Spring Security为未经身份验证的用户提供Role()
我在Spring Boot 2+Spring安全应用程序中有一个角色层次结构:Java 考虑到角色层次结构,Spring Security为未经身份验证的用户提供Role(),java,spring,spring-boot,spring-security,Java,Spring,Spring Boot,Spring Security,我在Spring Boot 2+Spring安全应用程序中有一个角色层次结构: @Bean public RoleHierarchy roleHierarchy() { var rh = new RoleHierarchyImpl(); rh.setHierarchy("ROLE_ADMIN > ROLE_USER and ..."); return rh; } 现在,我(作为管理员)希望代表另一个用户创建一个实体,但我应该检查该用户是否具有基于上述层次结构的特
@Bean
public RoleHierarchy roleHierarchy() {
var rh = new RoleHierarchyImpl();
rh.setHierarchy("ROLE_ADMIN > ROLE_USER and ...");
return rh;
}
现在,我(作为管理员)希望代表另一个用户创建一个实体,但我应该检查该用户是否具有基于上述层次结构的特定权限
我知道可以为当前经过身份验证的用户验证,但在我的情况下,我要授权的用户没有经过身份验证
现在,我可以检查用户是否具有该特定权限:
public boolean hasAuthority(User user, String authority) {
return user.getAuthorities()
.stream()
.anyMatch(grantedAuthority -> grantedAuthority.getName().equals(authority));
}
但这样的话,相当长的层次结构就会被忽略
我非常感谢您的帮助。您可以使用角色层次结构,请参阅:
收藏