我想在@PreAuthorize註釋訪問bean引用如下訪問bean引用:春表達式語言和Spring安全3:在@PreAuthorize
@PreAuthorize("@testBean.getTestValue()")
public String testSpEL() {
....
}
我有一個測試的bean配置如下:
@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
我從來沒有見過這樣的:@ testBean.getTestValue()'的'@PreAuthorize。你能否附上評論和URL的例子或這個功能的文件。 – Ralph 2011-04-21 12:48:35
看看這裏: http://static.springsource.org/spring/docs/3.0.x/reference/expressions.html 在6.5.12 bean引用 在它說,它允許規劃環境地政司Spring Security的文檔,因此這樣的事情應該是可能的。 – 2011-04-21 13:22:47
你有沒有在@Value註釋中試過相同的表達式 – Ralph 2011-04-21 14:21:55