今天在給項目添加注解攔截的時候,總是發現攔截不起作用,加入了這個注解按照角色來進行攔截。角色不是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]