外部化配置中的角色名称

Role names in externalized configuration

我想在 application.yml 中存储角色名称。

但是 Spring 无法解析我的 SpringEl 表达式。我如何引用 属性?

@RestController
@RequestMapping(value = {"/rest/administration"})
@PreAuthorize("hasRole(${roles.admin})")
public class RestAdminController {

我遇到错误:

Unexpected token. Expected 'identifier' but was 'lcurly({)'

您还可以在自定义 bean 实现中使用有效权限 @PreAuthorize("@yourBeanName.customMethod(authentication.principal.username)")

并且在 bean 中,您可以将您的角色作为字符串注入并只比较字符串