Метод выражения Spring 3 'hasAnyRole' терпит неудачу в моем jsp. Он не может оценить выражение после нескольких вызовов веб-службы (добавление / удаление ролей в Principal.authorities). Другими словами, первые несколько раз jsp работает нормально, но через некоторое время будет отображаться ошибка ниже.
<sec:authorize access="hasAnyRole('ROLE_ADMIN','ROLE_USER')">HELLO WORLD</sec:authorize>
Я думаю, что весенний атрибут «доступ», возможно, не смог оценить выражение «hasAnyRole (« ROLE_ADMIN »,« ROLE_USER »)» в следующей области кода:
access="hasAnyRole('ROLE_ADMIN','ROLE_USER')"
вызвано:
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 раньше, пожалуйста, сообщите мне, как воспроизвести, или любая информация об этой ошибке, спасибо