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

标签 java spring spring-security spring-el

在我的test.properties文件我有一个名为 devmode 的 key 。 做${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'")

并且成功了。但是,我不想在代码中包含该 key ,而是在我的 .properties 文件中。

最佳答案

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

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

关于java - 如何在 PreAuthorize 中解析属性文件中的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18903847/

相关文章:

java - 程序停止尝试读取 Excel 工作簿 (Apache POI)

java - 为什么我会收到错误 "File cannot be resolved to a type"?

java - 如何将大文本存储到数据库中以将其称为网络博客文章(MySql)

java - 从 Spring Web 服务获取 Jetty 实例

Spring 安全+火力地堡

java - 嵌入式 Java 中的二进制编码十进制数学

javascript - 在新浏览器选项卡上时的最终用户 session

java - 如何在 Spring Boot 应用程序中设置 GOOGLE_APPLICATION_CREDENTIALS

java - 使用 spring-boot 对 Rest 服务进行访问控制

java - Spring Security HTTPs - 尝试使用 https 登录时出错