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