SPEL有什么技巧,所以我可以在application.yml中定义我的管理员角色,然后直接加载到以下内容:
@PreAuthorize("hasAnyRole(${my.security.admin-roles-list})")
...
答案 0 :(得分:1)
您可以使用技巧从@PreAuthorize批注访问bean:
application.properties
my.security.admin-roles-list=RoleA,RoleB,RoleC
@Component("securityConfiguration")
public class SecurityConfiguration {
@Value("#{'${my.security.admin-roles-list}'.split(',')}")
private List<String> adminRoles;
public List<String> getAdminRoles() {
return adminRoles;
}
}
然后使用它:
@PreAuthorize("hasAnyRole(@securityConfiguration.getAdminRoles())")