标签 域名session共享 下的文章

背景:

www.mydomain.com 和 test.mydomain.com的三级域名是不同的。默认情况下在相同浏览器、不同tab页访问分别访问这两个域名的session不共享的。因为cookie的domain是不一样的,所以浏览器不能携带同一目录的sessionId给服务器。登录一个域名,切换到第二个域名时,需要重新登录。

使用一个过渡域名,将sessionID更新成一致

如下:

 String JSESSIONID = request.getSession().getId();//获取当前JSESSIONID (不管是从主域还是二级域访问产生)

 Cookie cookie = new Cookie("JSESSIONID", JSESSIONID);
 cookie.setDomain(".test.com"); //关键在这里,将cookie设成主域名,确保不同域之间都能获取到该cookie的值,从而确保session统一
 response.addCookie(cookie);  //将cookie返回到客户端
 request.getRequestDispatcher("indes.jsp").forward(request, response);

tomcat配置context增加属性:

<Context sessionCookieDomain=".mydomain.com" sessionCookiePath="/">
免责声明
本博客部分内容来自于互联网,不代表作者的观点和立场,如若侵犯到您的权益,请联系[email protected]。我们会在24小时内进行删除。