Bean 'org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler@1e86a5a7' of type [org.springframework.security.access.expression.method
时间: 2023-09-24 19:02:30 浏览: 200
org.springframework.expression-3.0.1.jar
这个问题通常是由于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"/>
<property name="methodSecurityExpressionHandler" ref="defaultMethodSecurityExpressionHandler"/>
</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>
<bean id="defaultMethodSecurityExpressionHandler" class="org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler">
<property name="permissionEvaluator" ref="permissionEvaluator"/>
</bean>
<bean id="permissionEvaluator" class="com.example.YourPermissionEvaluator"/>
```
其中,`com.your.package..*Service.*(..)` 部分需要替换成你的应用程序中的实际服务类所在的包路径。同时,需要确保在Spring配置文件中正确配置了Spring Security的命名空间和相关依赖。
如果问题仍然存在,请检查Spring Security的版本是否与Spring框架的版本兼容,并根据具体情况调整相应的配置。
阅读全文