Bean 'methodSecurityMetadataSource' of type [org.springframework.security.access.method.DelegatingMethodSecurityMetadataSource] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
时间: 2024-02-21 17:58:38 浏览: 215
这个问题通常是由于Spring Security的AOP配置不正确引起的。
你需要确保已经在Spring配置中正确配置了Spring Security的AOP支持。具体地说,需要在Spring配置文件中添加以下内容:
```xml
<aop:config>
<aop:advisor advice-ref="securityInterceptor" pointcut="execution(* com.your.package..*Service.*(..))"/>
</aop:config>
<bean id="securityInterceptor" class="org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor">
<property name="securityMetadataSource">
<sec:method-security-metadata-source />
</property>
<property name="accessDecisionManager" ref="accessDecisionManager"/>
<property name="authenticationManager" ref="authenticationManager"/>
</bean>
<bean id="accessDecisionManager" class="org.springframework.security.access.vote.UnanimousBased">
<property name="decisionVoters">
<list>
<bean class="org.springframework.security.access.vote.RoleVoter"/>
<bean class="org.springframework.security.access.vote.AuthenticatedVoter"/>
<bean class="org.springframework.security.access.vote.AffirmativeBased"/>
</list>
</property>
</bean>
```
其中,`com.your.package..*Service.*(..)` 部分需要替换成你的应用程序中的实际服务类所在的包路径。同时,需要确保在Spring配置文件中正确配置了Spring Security的命名空间和相关依赖。
如果问题仍然存在,请检查Spring Security的版本是否与Spring框架的版本兼容,并根据具体情况调整相应的配置。
阅读全文