Я пытаюсь получить доступ к ссылке на компонент в аннотации @PreAuthorize следующим образом:
@PreAuthorize("@testBean.getTestValue()")
public String testSpEL() {
....
}
У меня есть тестовый компонент, настроенный следующим образом:
@Component(value="testBean")
public class TestBean {
public boolean getTestValue() {
return true;
}
}
Однако, когда я пытаюсь получить доступ к методу testSpEL (), я сталкиваюсь со следующим исключением:
Caused by: org.springframework.expression.spel.SpelEvaluationException: EL1057E:(pos 1): No bean resolver registered in the context to resolve access to bean 'testBean'
at org.springframework.expression.spel.ast.BeanReference.getValueInternal(BeanReference.java:45)
at org.springframework.expression.spel.ast.CompoundExpression.getValueInternal(CompoundExpression.java:52)
at org.springframework.expression.spel.ast.SpelNodeImpl.getTypedValue(SpelNodeImpl.java:102)
at org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:97)
at org.springframework.security.access.expression.ExpressionUtils.evaluateAsBoolean(ExpressionUtils.java:11)
Я тщательно провел исследование, но нигде не могу найти то, что мне нужно изменить в моей конфигурации, чтобы заставить это работать. Есть указатели?
Спасибо!
С уважением, Jonck
P.S. Я использую Spring 3.0.5. Кажется, следующее указывает на то, что этот тип функциональности должен работать:
https://jira.springsource.org/browse/SPR-7173