我正在设置一个 Spring Boot (v1.2.6) web 项目并使用 Spring Security (v3.2.8)。我发现@PreAuthorize注释非常方便,但我不知道是否有办法从注释中的 SpEL 读取 Boot 的属性。我正在尝试这样做:
@PreAuthorize("mysecurity.permit")
Run Code Online (Sandbox Code Playgroud)
使用application.yml 中声明的属性:
mysecurity:
permit: true
Run Code Online (Sandbox Code Playgroud)
但我得到
Failed to evaluate expression 'mysecurity.permit'
Run Code Online (Sandbox Code Playgroud)
我已经和尝试@mysecurity.permit,并${mysecurity.permit}也具有相同的结果。似乎可以在服务中声明一个方法并以某种@service.isMySecurityPermited()方式访问它,但是我很高兴知道我是否能够直接访问该属性。
是否可以@ConditionalOnProperty在 TYPE 级别上使用,以便查看/评估在非默认属性文件中定义的属性?
以下似乎仅在默认属性文件中定义属性时才起作用,即在 application.properties
@Configuration
@ConditionalOnProperty(prefix = "jmx.rmi", value = "enabled")
public class JmxConfiguration {
// JMX related stuff
}
Run Code Online (Sandbox Code Playgroud)