记shiro开启注解的一次排错历程

用shiro注解实现方法级别的权限控制,加了一个@RequiresRoles("qqq") 发现没起作用,翻了官方文档发现要加这么两个配(与spring集成时):

 

<bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" depends-on="lifecycleBeanPostProcessor"/>
<bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor">
    <property name="securityManager" ref="securityManager"/>
</bean>

用的是spring4,配置这两个bean后启动时报错了,报了一大串,最后是这么个错:no matching editors or conversion strategy found 查了一下说是这么个问题:

         Spring注入的是接口,关联的是实现类。 这里注入了实现类,所以报异常了。

就在配置第一个bean时加了一句

<property name="proxyTargetClass" value="true"/> 

 最后是这样的:

<bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" depends-on="lifecycleBeanPostProcessor" >
    <property name="proxyTargetClass" value="true"/>	
</bean>

这样重启了一下不报错了。但是发现注解还没起作用,后来发下我把注解放在Controller上了,而这两个bean我配置在了父容器的xml中,我配置的是父容器不扫描Controller,让mvc容器扫描Controller,所以无法应用aop。将注解放在由父容器扫描的service上试了试,可以用了。

 

 

 

你可能感兴趣的:(shiro注解)