当前位置 : 主页 > 编程语言 > java >

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

来源:互联网 收集:自由互联 发布时间:2021-06-25
我有一个带有 Spring Security的JSP.我有一个简单的标记,用于确定用户是否具有如下所示的ADMIN角色: sec:authorize access="hasRole('ADMIN')" 并且工作正常.我现在正尝试在整个站点中实现许多角色
我有一个带有 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)">
网友评论