java - 有没有办法在 Spring security MVC 应用程序的属性文件中配置角色

标签 java spring spring-mvc spring-security

我有一个 Spring Security MVC 应用程序。在一些 JSP 文件中,我的代码如下所示:

<sec:authorize access="hasAnyRole('ROLE_FOO', 'ROLE_BAR')">
  <!--do something here-->  
</sec:authorize>

在将应用程序部署到生产环境时,我必须更改代码(将 ROLE_FOO 更改为其他内容),因为它具有不同的角色名称。所以我想知道是否有一种方法可以在属性文件中配置这些角色名称,然后在 <sec:authorize> 中选择这些角色名称。标签。

所以代码看起来像这样:

属性文件:

Admin_Roles = ROLE_FOO ROLE_BAR

和 JSP

<sec:authorize access="hasAnyRole(<get roles from Admin_Roles in prop file>)">
  <!--do something here-->  
</sec:authorize>

顺便说一句,我使用 Active Directory 进行身份验证,因此这些角色已在 Active Directory 中预先配置以用于测试和生产。

最佳答案

不确定这是最简单的方法。但您可以编写自己的表达式。

这个链接应该非常有用。 link

由于每个版本之间存在一些差异。您最好看一下 DefaultWebSecurityExpressionHandler 的源代码,以确保您在重写 createSecurityExpressionRoot

时不会错过任何内容

关于java - 有没有办法在 Spring security MVC 应用程序的属性文件中配置角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15102528/

相关文章:

java - 访问单独类中的数组时出现问题

java - Camel - 使用 end()

java - JSP 不显示对象列表中的表

spring-mvc - 如何在 Liferay 6.1 中以编程方式设置 "Link to page"布局?

java - Micronaut 属性注入(inject)不适用于 Gradle 多项目构建

java - 在 Scala 中使用 Java 泛型

java - 将 PDF 文件转换为字节数组的方法..(使用 outputstream() 进行刷新)

java - spring rest Controller 中作为JSON返回值的简单字符串

java - 错误请求错误单元测试多部分 Spring 支架

java - Spring,显示异常或 404 发生错误的 View