我有一个 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/