分享在Tomcat中两个亚结构域之间的会话属性(sharing session attribute

2019-10-19 01:41发布

我使用的是Tomcat 7.0和Java 6,我想为examples.comabc.examples.com共享域和子域之间的会话

所以在context.xml中把标签

<Context antiResourceLocking="false" privileged="true" sessionCookieDomain=".examples.com" sessionCookiePath="/" >

成功地共享饼干JSESSIONID但是当我设置examples.com属性

    logger.info( "Demo1 : "+httpSession.getId());
    httpSession.setAttribute("data", "subhash lamba");
    logger.info(" Demo1 data"+ httpSession.getAttribute("data") ); 

不能在test.examples.com子域访问

    HttpSession httpSession=request.getSession();
    logger.info( "Demo3 : "+httpSession.getId());
    logger.info(" Demo3 data "+ httpSession.getAttribute("data") );

当我在域和子域都登录JSESSIONID是相同的,但是当我试图把它们之间的共享属性,它不工作。

Answer 1:

我找到解决我自己。 我顺利拿到二级域名,现在只是我的问题之间的交流会是识别相同的用户。 当我尝试在那个时候它是行不通的,因为服务器维护单独的应用程序会话共享这两个域和子域之间的会话数据。

现在我的解决办法是:

在Tomcat服务器存在的背景下 ,情况下,我们可以存储对象和背景同样可以通过在同一个Tomcat的每个应用程序进行访问。 所以现在我在java.util.Map对象存储键 - 值对的java.util.Map对象上创建其中关键是JSESSIONID和价值是用户ID登录谁。 所以,现在我可以很容易地访问用户谁在域和所有子域登录。



文章来源: sharing session attribute between two subdomains in tomcat