Spring Security:如何重命名"_spring_security_remember_me"复选框字段?

ele*_*ype 10 spring spring-mvc spring-security

在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" />
    
    Run Code Online (Sandbox Code Playgroud)
  • 在我的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>
    
    Run Code Online (Sandbox Code Playgroud)

在"<form-login>"bean中,我已经能够使用username-parameterpassword-parameter重命名必须在jsp中使用的默认"j_password"和"j_username"字段.但我找不到重命名"_spring_security_remember_me"复选框字段的方法.

有关如何重命名它的任何想法?

sou*_*ica 10

这是使用的parameter属性设置的RememberMeServices.

遗憾的是,这不能使用命名空间配置进行设置.您可以通过以下几种方式进行设置:

  1. 创建自定义RememberMeServices并使用它<remember-me services-ref="myRememberMeServices">.在bean上设置属性.

  2. 使用BeanPostProcessor(参见1.8)将属性设置为默认值RememberMeServices.