在我的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}')")

07-26 05:00