我的春季安全XML是如下:記得我結果通過Spring Security的忽略,我仍然重定向到登錄頁面
<http use-expressions="true">
<intercept-url pattern="/login" access="isAnonymous()" requires-channel="https"/>
<intercept-url pattern="/login/" access="isAnonymous()" requires-channel="https" />
<intercept-url pattern="/logout-success" access="isAnonymous()" />
<intercept-url pattern="/logout-success/" access="isAnonymous()" />
<intercept-url pattern="/logout" access="isAuthenticated()" />
<intercept-url pattern="/**" access="hasRole('ROLE_SUPER_ADMIN')" />
<form-login login-page="/login/" default-target-url="/example/Login_execute"/>
<logout logout-url="/logout" logout-success-url="/logout-success" />
<remember-me services-ref="rememberMeServices"/>
<port-mappings>
<port-mapping http="8080" https="8443"/>
</port-mappings>
</http>
...
<beans:bean id="userDetailsService" class="com.myownpackage.UserAccountServiceImpl"/>
<beans:bean id="rememberMeServices" class="org.springframework.security.web.authentication.rememberme.PersistentTokenBasedRememberMeServices">
<beans:property name="userDetailsService" ref="userDetailsService" />
<beans:property name="tokenRepository" ref="persistentTokenRepository" />
<beans:property name="key" value="myownkey" />
</beans:bean>
<beans:bean id="persistentTokenRepository" class="com.myownpackage.PersistentTokenRepositoryImpl" />
每當我登錄,我剔記得我,我的計劃會節省有些事情要記住我的數據庫表(這是正確的)。
如果我關閉瀏覽器,重新打開瀏覽器,並打開需要身份驗證,我的計劃將在對PersistentTokenBasedRememberMeServices並返回正確的UserDetails執行processAutoLoginCookie一個頁面(這也是正確的)
,但即便如此,我我仍然重定向到登錄頁面。
順便說一下,登錄頁面是自定義的,我所做的只是顯示帶有登錄窗體的JSP文件。
在編寫Spring Security XML時,有沒有什麼步驟可以忽略?
檢查調試日誌輸出。當你重定向時,它應該告訴你爲什麼。例如,用戶可能沒有角色'ROLE_SUPER_ADMIN',因此不能訪問任何其他URL。 – 2012-07-08 14:08:43