1

我在 Spring MVC 中使用 RememberMe 服务。它以前可以工作,但现在不行了。它会创建一个 Cookie,但是当重新启动浏览器时,该 cookie 会自动删除。我用3-4台机器测试过,不是浏览器问题。这可能是一些配置问题。我们在 Spring Security 中使用基于 Token 的 rememberMe 服务和以下配置。

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

我错过了什么吗?

4

1 回答 1

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>

这篇文章说“在你的AuthenticationManager中包含RememberMeAuthenticationProvider”:http ://static.springsource.org/spring-security/site/docs/3.0.x/reference/remember-me.html

于 2012-12-21T02:51:50.323 回答