首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring Security:如何自定义remember-me请求参数名称?

Spring Security:如何自定义remember-me请求参数名称?
EN

Stack Overflow用户
提问于 2011-12-28 16:18:00
回答 2查看 3K关注 0票数 2

我使用password-parameter (如下所示)定制包含密码的请求参数的名称。如何对remember-me (默认_spring_security_remember_me)做同样的事情?

代码语言:javascript
复制
<security:form-login password-parameter="j_password_input" ... />
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-29 02:16:11

您有几个选项,我在下面对这些选项进行了详细解释

通过BeanPostProcessor

  • Use
  • -ref使用安全命名空间并手动配置RememberMeServices

将安全命名空间与BeanPostProcessor一起使用

名称空间不支持配置记住我参数,但是您可以使用FAQ中有关如何仍然使用名称空间支持的提示,但可以自定义结果。诀窍是使用BeanPostProcessorAbstractRememberMeServices上设置参数字段。你可以在下面找到一个这样的例子:

代码语言:javascript
复制
public class MyBeanPostProcessor implements BeanPostProcessor {
  public Object postProcessAfterInitialization(Object bean, String name) {
    if (bean instanceof AbstractRememberMeServices) {
      AbstractRememberMeServices rememberMe = (AbstractRememberMeServices) bean;
      rememberMe.setParameter("myParamname");
    }
    return bean;
  }    
  public Object postProcessBeforeInitialization(Object bean, String name) {
    return bean;
  }
}

然后,您需要像往常一样使用名称空间,并将MyBeanPostProcessor添加到Spring配置中,如下所示:

代码语言:javascript
复制
<security:http ..>
  ...
  <security:remember-me/>
</security:http>
<bean class="sample.MyBeanPostProcessor"/>

使用服务-ref并手动配置RememberMeServices

您也可以使用services-ref属性,但这涉及到更多的配置。例如,如果需要,可以使用以下配置:

代码语言:javascript
复制
<security:http ..>
  ...
  <security:remember-me services-ref="rememberMeServices"/>
</security:http>
<bean id="rememberMeServices"
      class="org.springframework.security.web.authentication.rememberme.TokenBasedRememberMeServices">
  <property name="key" value="mustMatchRememberMeAuthenticationProvidersKey"/>
  <property name="parameter" value="myParamName"/>
  <!-- You must refer to a bean that implements UserDetailsService 
       in this example the bean id is userDetailsService -->
  <property name="userDetailsService" ref="userDetailsService"/>
</bean>
票数 5
EN

Stack Overflow用户

发布于 2014-05-27 22:56:13

从Spring Security3.2.x开始,您可以在remember-me元素上使用remember-me-parameter参数设置它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8653455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档