【问题标题】:Set Spring RememberMe Cookie Domain after Authentication验证后设置 Spring RememberMe Cookie 域
【发布时间】:2014-01-16 13:00:33
【问题描述】:

在用户通过身份验证后,有什么方法可以设置 Spring Security RememberMe cookie 的域。 3.1.4 版中 API 的更改使得子类化和覆盖 setCookie() 方法变得不切实际。同样在这一点上,我没有确定要将 cookie 设置到哪个域所需的身份验证信息。

基本上系统有两种类型的用户,我想根据登录的用户类型设置cookie域,这样他们就只能使用remember-me身份验证来访问他们的用户特定区域。

一旦用户通过身份验证,然后修改域,然后将 cookie 添加回 HttpServletResponse 但它不起作用,我正在尝试从 HttpServletRequest 中获取 cookie。出现在浏览器中的 cookie 还附有根域。

有没有更简单的方法来做我想做的事情?感觉好像应该已经有功能可以做到这一点。是否可以在我的 CustomPersistentTokenBasedRememberMeService 类中重定向?我也知道根据是否引发异常来重定向用户的哪个区域。

【问题讨论】:

    标签: spring authentication spring-mvc cookies remember-me


    【解决方案1】:

    我最终遵循了这篇文章的建议:Spring Security RememberMe success handler or url filtering 并实现了一个 AuthenticationSuccessHandler,我将它传递给我的表单登录配置和我的记住我的配置。

    <http>
        <form-login ... authentication-success-handler-ref="customAuthenticationSuccessHandler"/>
        <remember-me authentication-success-handler-ref="customAuthenticationSuccessHandler"/>
    </http>
    
    <beans:bean id="customAuthenticationSuccessHandler"
    class="foo.bar.CustomAuthenticationSuccessHandler" />
    

    然后在我刚刚在 CustomAuthenticationSuccesshandler 中覆盖的 onAuthenticationSuccess 结束时:

    response.sendRedirect(response.encodeRedirectURL(redirectAddress));
    

    它就像一个魅力

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-22
      • 1970-01-01
      • 2011-02-06
      • 2016-12-26
      相关资源
      最近更新 更多