如何更改Grails Spring安全Cookie路径

如何更改Grails Spring安全Cookie路径,grails,cookies,spring-security,remember-me,cookie-path,Grails,Cookies,Spring Security,Remember Me,Cookie Path,我有两个使用spring security的grails应用程序: 核心 模块(映射到核心数据库表的用户和角色表) 我想使用“记住我”实现单一登录功能。问题是cookie存储在不同的路径“/Core”和“/Module”中,我猜这就是cookie无法工作的原因 有人知道如何将cookie路径更改为“/”吗 注释: 我是否需要更改Spring安全性或Tomcat服务器配置(使用intellij) 如果可能,我希望避免设置CAS服务器 我正在寻找插件作为替代方案 感谢您的帮助当“记住我”筛选

我有两个使用spring security的grails应用程序:

  • 核心
  • 模块(映射到核心数据库表的用户和角色表)
我想使用“记住我”实现单一登录功能。问题是cookie存储在不同的路径“/Core”和“/Module”中,我猜这就是cookie无法工作的原因

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

注释

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

感谢您的帮助

当“记住我”筛选器创建“记住我”cookie时,它会将cookie路径设置为从请求对象获得的上下文路径(请参阅相关内容)。如果要自定义此行为,则需要在子类中重写应用程序使用的记忆我服务实现的
setCookie()
cancelCookie()
方法(或者
TokenBasedMemberMeservices
或者
PersistentTokenBasedMemberMeservices
),并配置
rememberAuthenticationFilter
以使用自定义实现。

以下是我如何实现它的。 使用extendsTokenBasedMemberMeservices创建新服务 重写setCookiecancelCookie方法以设置cookie路径。 将cookiePath变量和方法添加到setCookepath()

更新resources.groovy


对于tomcat:我有一个类似的问题-看看我的解决方案:我有一个类似的问题-看看我的解决方案我有一个类似的问题-看看我的解决方案
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 
}