4
我正在将我的Spring Security从3.1.0升级到3.1.3,并遇到了一个正在破坏我的设置的更改。用Spring Security 3.1.3自定义SecurityExpressionRoot方法
我一直在使用自定义SecurityExpressionRoot来公开一个用于拦截url条目的方法。
<http entry-point-ref="forbiddenAccessEntryPoint" use-expressions="true" create-session="never"
access-decision-manager-ref="webAccessDecisionManager">
<intercept-url pattern="/licenses*" access="hasProjectAuthority('LICENSES')"/>
SecurityExpressionRoot通过自定义的DefaultMethodSecurityExpressionHandler注入。
这在3.1.0工作正常,但之后升级到3.1.3春节无法评估 “hasProjectAuthority” 的方法:
EL1004E:(POS 0):方法调用:方法hasProjectAuthority(java.lang.String中)无法找到org.springframework.security.web.access.expression.WebSecurityExpressionRoot类型
这是否在某处移动?
我把它切换到WebSecruityExpressionRoot而不仅仅是一个SecurityExpressionRoot但它没有帮助。同样的问题。 – ryber
它通过自定义SecurityExpressionHandler注入到WebExpressionVoter中? –
它由DefaultMethodSecurityExpressionHandler的createSecurityExpressionRoot方法返回(这是一个SecurityExpressionHandler – ryber