我使用spring security获得了两个grails应用程序:
我希望使用“记住我”对功能进行单点登录。问题是cookie存储在不同的路径“/ Core”和“/ Module”中,我猜测它是它无法工作的原因。
有谁知道如何将cookie路径更改为“/”?
备注:
非常感谢任何帮助
答案 0 :(得分:1)
当remember-me过滤器创建remember-me cookie时,它会将cookie路径设置为从请求对象获取的上下文路径(请参阅相关的source code here)。如果您要自定义此行为,则需要覆盖应用程序使用的remember-me服务实现的setCookie()
和cancelCookie()
方法(TokenBasedRememberMeServices
或PersistentTokenBasedRememberMeServices
)在子类中,并配置RememberMeAuthenticationFilter
以使用您的自定义实现。
答案 1 :(得分:0)
这是我如何实施的。 使用扩展 TokenBasedRememberMeServices 创建新服务 覆盖 setCookie 和 cancelCookie 方法来设置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 }