You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在@PreAuthorize注解中引用Spring属性?

Spring @PreAuthorize引用配置属性的正确写法

你之前的写法问题在于给${required-authority}加了单引号,导致Spring EL把整个${required-authority}当成了字符串字面量,没有解析配置属性。以下是两种可行的正确写法:

方法一:直接在SpEL中引用配置属性

不需要给${}表达式加单引号,Spring会自动解析配置值并传入hasAuthority()方法:

  1. 保持application.yml配置不变:
required-authority: The_Group
  1. 修改控制器注解:
@PreAuthorize("hasAuthority(${required-authority})")
// 你的控制器方法
public ResponseEntity<?> yourControllerMethod() {
    // ... 方法逻辑
}

如果配置的权限名称包含空格或特殊字符,可以在配置文件中给属性值加单引号,注解写法不变:

required-authority: 'The Group With Spaces'

方法二:通过@Value注入字段后引用

如果需要更灵活的处理(比如后续要对权限值做逻辑处理),可以先把配置属性注入到控制器字段,再在SpEL中引用该字段:

@RestController
public class YourController {

    @Value("${required-authority}")
    private String requiredAuthority;

    @PreAuthorize("hasAuthority(#requiredAuthority)")
    public ResponseEntity<?> yourControllerMethod() {
        // ... 方法逻辑
    }
}

内容的提问来源于stack exchange,提问作者fml2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 14:52:08