今天在给项目添加注解拦截的时候,总是发现拦截不起作用,加入了这个注解按照角色来进行拦截。角色不是1的用户访问此方法都会被拦截。
测试了一会发现把注解bean配置到了shiro.xml中没有起作用。需要把下面注解放入到spring-mvc.xml才会生效。
<!-- 开启Shiro注解 --> <bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" depends-on="lifecycleBeanPostProcessor"> <property name="proxyTargetClass" value="true" /> </bean> <bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor"> <property name="securityManager" ref="securityManager" /> </bean>
放入之后,重启项目,经测试成功拦截,报这个异常说明当前请求没有角色1,成功被拦截。
Request processing failed; nested exception is org.apache.shiro.authz.UnauthorizedException: Subject does not have role [1]