Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Spring Security 4中基于角色授权链接_Java_Spring_Spring Security_Authorization - Fatal编程技术网

Java 如何在Spring Security 4中基于角色授权链接

Java 如何在Spring Security 4中基于角色授权链接,java,spring,spring-security,authorization,Java,Spring,Spring Security,Authorization,我正在尝试根据角色授权链接 我的页面: <c:if test="${pageContext.request.userPrincipal.name==null}"> <li> <a href="<c:url value="/registration"/>"><span class="glyphicon glyphicon-user">Register</span></a> </li> &

我正在尝试根据角色授权链接

我的页面:

<c:if test="${pageContext.request.userPrincipal.name==null}">
    <li> <a href="<c:url value="/registration"/>"><span class="glyphicon glyphicon-user">Register</span></a> </li>
    <li> <a href="<c:url value="/login"/>"><span class="glyphicon glyphicon-lock">Login</span></a> </li>    
</c:if>

<c:if test="${pageContext.request.userPrincipal.name!=null}">

     <security:authorize access="ROLE_USER">
         <li><a href="cart.jsp"><span class="glyphicon glyphicon-shopping-cart">CART</span></a></li>
     </security:authorize>

     <li><a href="<c:url value="/j_spring_security_logout"></c:url>">logout</a></li>
</c:if>
尝试此..而不是

您必须使用web安全表达式,请参阅:

30.2授权标签

此标记用于确定是否应评估其内容。在Spring Security 3.0中,它可以通过两种方式使用[21]。第一种方法使用web安全表达式,在标记的
access
属性中指定。表达式计算将委托给在应用程序上下文中定义的
SecurityExpressionHandler
(您应该在
命名空间配置中启用web表达式,以确保此服务可用)。例如,你可能有


此内容仅对在其授权权限列表中具有“主管”权限的用户可见。
ROLE\u USER
不是内置的web安全表达式(请参阅),请改用
hasRole('USER')
,请参阅:

确定
SecurityExpressionOperations.getAuthentication()
是否在
Authentication.getAuthorities()
中具有特定权限

这类似于
SecurityExpressionOperations.hasAuthority(String)
,只是此方法意味着传入的字符串是角色。例如,如果在实现中传递了“USER”,则可以将其转换为使用“ROLE\u USER”。角色转换的方式可能取决于实现设置

with root cause
org.springframework.expression.spel.SpelEvaluationException:
    EL1008E:(pos 0): Property or field 'ROLE_USER' cannot be found on object of type 
    'org.springframework.security.web.access.expression.WebSecurityExpressionRoot' - maybe not public?