在我的test.properties
文件中,我有一个名为devmode
的密钥。
在${devmode}
内执行@PreAuthorize
失败。
@PreAuthorize("${devmode}")
如何在PreAuthorize中获取属性的值?
我正在像这样加载属性文件:
<context:property-placeholder location="/WEB-INF/test.properties" />
像这样使用
<security:http use-expressions="true">
内部的值:<security:intercept-url pattern="/api/dev/**" access="${devmode}" />
这也适用:
@Value(${devmode}) String myVar;
所以我真的看不出来为什么它不起作用。
我正在尝试做的是:
我以前有这个:
@PreAuthorize("#key == 'mysecretkey'")
而且有效。但是,我不想在代码中包含该键,而在我的.properties文件中。
最佳答案
假设devmode变量解析为角色名称,请尝试以下操作:
@PreAuthorize("hasRole('${devmode}')")