Spring 3表达式方法'hasAnyRole'在我的jsp中失败。在进行多个Web服务调用(将在Principal.authorities中添加/删除角色)后,它无法评估表达式。换句话说,前几次,jsp都可以正常工作,但过一会儿,它将显示在错误下方。
close()
我认为spring属性'access'可能无法在以下代码区域中评估表达式'hasAnyRole('ROLE_ADMIN','ROLE_USER')':
<sec:authorize access="hasAnyRole('ROLE_ADMIN','ROLE_USER')">HELLO WORLD</sec:authorize>
原因: org.springframework.expression.spel.SpelEvaluationException: EL1029E :(位置0):尝试执行方法时发生问题 类型为'hasAnyRole'的对象 “ org.springframework.security.web.access.expression.WebSecurityExpressionRoot”: '问题调用方法:public final boolean org.springframework.security.access.expression.SecurityExpressionRoot.hasAnyRole(java.lang.String [])' 在 org.springframework.expression.spel.ast.MethodReference.getValueInternal(MethodReference.java:202) 在 org.springframework.expression.spel.ast.SpelNodeImpl.getTypedValue(SpelNodeImpl.java:102) 在 org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:98) 在 org.springframework.security.access.expression.ExpressionUtils.evaluateAsBoolean(ExpressionUtils.java:11) ... 76更多
原因: org.springframework.expression.AccessException:调用问题 方法:公共最终布尔值 org.springframework.security.access.expression.SecurityExpressionRoot.hasAnyRole(java.lang.String []) 在 org.springframework.expression.spel.support.ReflectiveMethodExecutor.execute(ReflectiveMethodExecutor.java:73) 在 org.springframework.expression.spel.ast.MethodReference.getValueInternal(MethodReference.java:197) ... 79更多
原因:java.lang.ArrayIndexOutOfBoundsException
我仍然无法始终如一地重现此确切的错误代码。
如果以前有人见过此Spring表达式错误,请赐教我如何重现,或者对此错误的任何信息表示赞赏,谢谢