我正在将我的 Spring Security 从 3.1.0 升级到 3.1.3,并遇到了一个破坏我设置的更改。
我一直在使用自定义 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 后 Spring 无法评估“hasProjectAuthority”方法:
EL1004E:(pos 0):方法调用:在 org.springframework.security.web.access.expression.WebSecurityExpressionRoot 类型上找不到方法 hasProjectAuthority(java.lang.String)
这是否移动到某个地方?