jsp - 如何为 Spring Security hasRole 使用常量

标签 jsp spring-security

我有一个带有 Spring Security 的 JSP。我有一个简单的标签来确定用户是否有 ADMIN像这样的角色:

<sec:authorize access="hasRole('ADMIN')">

并且工作正常。我现在正尝试在整个站点上实现多个角色,所以我有一个 UserAccess使用静态字符串作为我所有角色的常量的类。所以我试试这个:
<sec:authorize access="hasRole(UserAccess.ADMIN)">

但这正在抛出:
Field or property 'UserAccess' cannot be found on object of type 
'org.springframework.security.web.access.expression.WebSecurityExpressionRoot'

该类在类路径中,我可以通过 <% .. %> 访问它等等...
处理这个问题的最佳方法是什么?

最佳答案

引用 hasRole 中的实例您需要使用专用T运算符并使用类的完全限定名称。

<sec:authorize access="hasRole(T(package.UserAccess).ADMIN)">

关于jsp - 如何为 Spring Security hasRole 使用常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19108256/

相关文章:

java - Spring 安全 3.x : Creating a custom authentication provider without a UserDetailsService

spring-security - 在哪里可以找到使用 <http> 元素时注册的所有安全过滤器的列表?

jsp - tomcat 不编译 WEB-INF/libs?

java.lang.ClassCastException : [Ljava. lang.Object;不能转换为 com.sakhnin.classes.MonthlySummary

spring - 如何使用 LDAP 和基于角色的数据库授予权限来实现 Spring Security?

grails - 在 Spring Security SavedRequest 中忽略 WebSocket 连接

javascript - 在 JavaScript 中访问 Java/Servlet/JSP/JSTL/EL 变量

java - 在 JavaScript 中使用 context-param 的最佳方式是什么

javascript - "Refresh"JavaScript 文件发生变化

spring - 如何通过 REST API 为 Spring-social 和 spring-security 设置登录服务?