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

时间:2015-02-08 17:40:08

标签: java session tomcat cookies

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

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

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

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

但是,如果网址为.example.com.br,如果网址为.com.br,那么就不会告诉Tomcat使用Cookie域.example.com.com?我不需要共享会话信息...即:如果用户更改域名,则可能需要再次登录。我并不担心。问题是根本没有存储.com版本的信息,因为cookie设置为.com.br版本。

是否有任何解决方法?

1 个答案:

答案 0 :(得分:2)

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

  

用户代理应尽一切努力阻止共享   不同域中主机之间的会话信息。

我可以提出的最佳建议是让您的会话管理(登录,注销,...)在单个域中运行,无论用户最初访问的是什么。