将应用程序属性中的角色列表注入@PreAuthorize



SPEL 有什么技巧吗,所以我可以在 application.yml 中定义我的管理员角色,然后将它们直接加载到类似的东西中:

@PreAuthorize("hasAnyRole(${my.security.admin-roles-list})")

...?

你可以使用 Spring EL 从@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())")

最新更新