【问题标题】:How to use constant for Spring Security hasRole如何为 Spring Security hasRole 使用常量
【发布时间】:2013-10-07 03:28:33
【问题描述】:

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

该类在类路径中,我可以使用&lt;% .. %&gt; 等访问它...
处理这个问题的最佳方法是什么?

【问题讨论】:

    标签: jsp spring-security


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      可能缺少单引号?试试这个:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-04-07
        • 2022-01-01
        • 2015-08-27
        • 2015-05-02
        • 2017-10-07
        • 2017-06-16
        相关资源
        最近更新 更多