0

我已经使用 Spring 安全性在我的应用程序中实现了记住我。我正在使用 PersistentTokenBasedRememberMeService 实现它。当我使用时,这工作正常:

 <remember-me key="springRocks" data-source-ref="dataSource"/>

我看到在 persistent_logins 表中创建了条目。现在我尝试在我的登录页面中删除记住我的复选框,并在定义 PersistentTokenBasedRememberMeService bean 时将属性“alwaysRemember”设置为 true,期望我现在不需要单击该复选框,它将永远被记住。我是这样做的:

<beans:bean id="rememberMeService" class= "org.springframework.security.web.authentication.rememberme.PersistentTokenBasedRememberMeServices">
    <beans:property name="key" value="springRocks"/>
    <beans:property name="userDetailsService" ref="userDetailsService"/>
    <beans:property name="tokenRepository" ref="tokenRepository"/>
    <beans:property name="alwaysRemember" value="true"/>
</beans:bean>

我已经将我的记忆覆盖为:

<remember-me services-alias="rememberMeService" key="springRocks" data-source-ref="dataSource"/>

现在记住我的功能不起作用。有人可以告诉我哪里出错了吗?

4

1 回答 1

0

您需要更新配置以使用servies-ref而不是services-alias

<remember-me 
    services-ref="rememberMeService" 
    key="springRocks" 
    data-source-ref="dataSource"/>

services-alias 是为了能够在另一个对象需要引用它时引用由元素创建的 RememberMeServices。services-ref 将允许您使用自己的 RememberMeServices 实例。

于 2013-08-16T13:25:54.270 回答