2012-07-08 15 views
0

我的春季安全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時,有沒有什麼步驟可以忽略?

+0

檢查調試日誌輸出。當你重定向時,它應該告訴你爲什麼。例如,用戶可能沒有角色'ROLE_SUPER_ADMIN',因此不能訪問任何其他URL。 – 2012-07-08 14:08:43

回答

1

Spring Security的「記住我」在客戶端使用Cookie,這是您的瀏覽器。

Spring's DOCS

記住,我還是持久登錄認證是指網站 能夠記住會話之間的主體的身份。 這通常通過向瀏覽器發送cookie來完成, 將在將來的會話中檢測到cookie並導致自動登錄進行。 Spring Security爲這些操作提供了必要的 鉤子,並且有兩個具體的記住我的實現。一個使用哈希來保存基於cookie的令牌的安全 ,另一個使用數據庫或其他永久存儲機制來存儲生成的令牌。

Spring的想法是,你將能夠在不同會話之間自動登錄:

服務器的會議,這意味着當服務器「反彈」(下降,然後向上),被處理,例如,持續性。

客戶端會話由瀏覽器(Cookies)處理。瀏覽器使用Spring發送的Cookie,服務器驗證此Cookie,並允許用戶自動登錄,而無需再次輸入憑據。

檢查您的瀏覽器中的Cookies數據。

HTH。

Ohad。

相關問題