在 Apache Tomcat 中的两个域之间共享会话 cookie 的解决方法

Workaround to share session cookie between two domains in Apache Tomcat

我在名为 www.example.com.br 的域下有一个网站。我的服务器设置为使用 cookie 会话跟踪模式

getServletContext().getSessionCookieConfig().setDomain(".example.com.br");
getServletContext().getSessionCookieConfig().setPath("/");

但现在我要在 www.example.com 下介绍英文版的网站,因为 Google 和 SEO 技术最好有不同的域而不是子域。

我在 Stack Overflow 中发现了很多关于此的问题,我知道出于很多安全原因这是不可能的。

但是如果 URL 有 .com.br.example.com 如果URL 有 .com?我不需要共享会话信息...即:如果用户更改域,他可能需要重新登录。我不担心。问题是根本没有存储 .com 版本的信息,因为 cookie 设置为 .com.br 版本。

没有任何解决方法吗?

用户的浏览器决定是否随请求发送 cookie。 Web 服务器(Tomcat,在您的情况下)对该决定没有任何发言权。你要求的是明确禁止的。例如,RFC2109 表示:

A user agent should make every attempt to prevent the sharing of session information between hosts that are in different domains.

我能提出的最佳建议是让您的会话管理(登录、注销等)在单个域中工作,而不管用户最初访问的是哪个域。