在 Spring MVC 3.1 应用程序中,我尝试实现 remember-me 功能(信息保存在数据库中)。
这是我目前拥有的:
- 我创建了一个 persistent_logins表。
我的安全上下文文件中有这个:
<form-login login-page="/login" authentication-failure-url="/login?err=true" default-target-url="/" username-parameter="username" password-parameter="password" login-processing-url="/validatelogin" /> <remember-me key="some_random_key" token-validity-seconds="31536000" data-source-ref="dataSource" />
在我的 login.jsp 中,我有:
<form action="/validatelogin" method="post"> username : <input type='text' id='username' name='username' value='${SPRING_SECURITY_LAST_EXCEPTION.authentication.principal}' /> <br /> password : <input type='password' id='password' name='password' /> <br /><br /> remember me : <input type="checkbox" name="_spring_security_remember_me" /> <br /><br /> <input type="submit" value="submit" /> </form>
在“
知道如何重命名吗?
最佳答案
这是使用 parameter
设置的RememberMeServices
的属性(property).
遗憾的是,这不能使用命名空间配置进行设置。您可以通过以下几种方式进行设置:
创建一个自定义的 RememberMeServices 并通过
<remember-me services-ref="myRememberMeServices">
使用它.在你的 bean 上设置属性。Use a BeanPostProcessor (see 1.8)将属性设置为默认
RememberMeServices
.
关于 Spring 安全 : How to rename the "_spring_security_remember_me" checkbox field?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10368727/