2012-11-09 87 views
1

我在使用Spring MVC中的RememberMe服務。它曾經是工作,但現在不是。它創建一個Cookie,但重新啓動瀏覽器時,Cookie將自動刪除。我使用3-4臺機器進行測試,這不是瀏覽器問題。這可能是一些配置問題。我們在Spring Security中使用基於令牌的rememberMe服務和以下配置。RememberMe服務不工作

<bean id="shoTokenBasedRememberMeServices" class="com.sho.web.security.ShoTokenBasedRememberMeServices"> 
    <constructor-arg ref="shoUserDetailsService"/> 
</bean> 

我錯過了什麼?

+0

user1417746

回答

0

我經歷了這個特殊的問題。我通過將RememberMeAuthenticationProvider添加到身份驗證管理器來解決此問題。

<beans:bean id="rememberMeAuthenticationProvider" 
     class="org.springframework.security.authentication.RememberMeAuthenticationProvider"> 
     ... 
    </beans:bean> 

    <authentication-manager alias="authMgr"> 
     ... 
     <authentication-provider ref="rememberMeAuthenticationProvider"> 
     </authentication-provider> 
    </authentication-manager> 

所以我的認證管理器結束了兩個身份驗證提供:

<authentication-manager alias="authMgr"> 
     <authentication-provider user-service-ref="customUserDetailsService"> 
      <password-encoder hash="sha"> 
       <salt-source user-property="username" /> 
      </password-encoder> 
     </authentication-provider> 
     <authentication-provider ref="rememberMeAuthenticationProvider"> 
     </authentication-provider> 
    </authentication-manager> 

這篇文章說 「包含的RememberMeAuthenticationProvider在你的AuthenticationManager」:http://static.springsource.org/spring-security/site/docs/3.0.x/reference/remember-me.html