在spring與shiro的集成過程中遇到了這樣一個問題,在shiro的Web過濾器中添加了loginUrl地址,啟動項目后shiro並未攔截loginurl地址。
百度了一下,大多數是說未開啟spring的動態代理,即添加下面的代碼到mvc配置文件中,但是並未起作用。
<aop:config proxy-target-class="true"></aop:config> <bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor"> <property name="securityManager" ref="securityManager"/> </bean>
但是,仔細看過后,發現我是開啟了表單身份驗證過濾器
<!-- 基於Form表單的身份驗證過濾器 -->
<bean id="formAuthenticationFilter" class="org.apache.shiro.web.filter.authc.FormAuthenticationFilter">
<property name="usernameParam" value="username"/>
<property name="passwordParam" value="password"/>
<property name="rememberMeParam" value="rememberMe"/>
<property name="loginUrl" value="/loginpage"/>
</bean>
此處的loginUrl地址需要跟你在shiro的web過濾器中配置的loginUrl地址保持一致,問題解決

