【问题标题】:How to change Grails Spring Security Cookie Path如何更改 Grails Spring Security Cookie 路径
【发布时间】:2013-04-07 14:01:35
【问题描述】:

我有两个使用 Spring Security 的 grails 应用程序:

  • 核心
  • 模块(用户和角色表映射到核心数据库表)

我想要使用“记住我”的单点登录功能。问题是 cookie 存储在不同的路径“/Core”和“/Module”中,我猜这是它不起作用的原因。

有人知道如何将cookie路径更改为“/”吗?

注意事项

  • 是否需要更改 Spring Security 或 Tomcat 服务器配置(使用 intellij)
  • 如果可能,我想避免设置 CAS 服务器
  • 我正在寻找插件作为替代方案

感谢任何帮助,将不胜感激

【问题讨论】:

标签: grails cookies spring-security remember-me cookie-path


【解决方案1】:

remember-me 过滤器在创建 remember-me cookie 时,会将 cookie 路径设置为从请求对象获得的上下文路径(参见相关的source code here)。如果要自定义此行为,则需要在子类中覆盖应用程序使用的 remember-me 服务实现的 setCookie()cancelCookie() 方法(TokenBasedRememberMeServicesPersistentTokenBasedRememberMeServices),并配置RememberMeAuthenticationFilter 使用您的自定义实现。

【讨论】:

    【解决方案2】:

    这是我实现它的方式。 使用 extends TokenBasedRememberMeServices 创建一个新服务 覆盖 setCookiecancelCookie 方法来设置 cookie 路径。 添加cookiePath变量并添加方法到setCookepath()

    更新 resources.groovy

    rememberMeServices(YourTokenBasedRememberMeServices) { 
        userDetailsService = ref("userDetailsService")
        key = conf.rememberMe.key
        cookieName = conf.rememberMe.cookieName
        alwaysRemember = conf.rememberMe.alwaysRemember
        tokenValiditySeconds = conf.rememberMe.tokenValiditySeconds
        cookiePath = some config variable 
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-24
      • 2017-04-22
      • 1970-01-01
      • 2012-11-26
      • 2018-04-26
      • 1970-01-01
      • 2014-03-08
      相关资源
      最近更新 更多