如何在PreAuthorize中解析属性文件中的属性?

时间:2013-09-19 19:59:08

标签: java spring spring-security spring-el

在我的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文件中。

1 个答案:

答案 0 :(得分:-1)

假设devmode变量解析为角色名称,请尝试:

@PreAuthorize("hasRole('${devmode}')")