Jetty JSESSIONID与Java&;码头及 ;关于多重子域

Jetty JSESSIONID与Java&;码头及 ;关于多重子域,jetty,guice,jsessionid,Jetty,Guice,Jsessionid,我使用jetty和GoogleGuice。我以这种方式初始化会话: HttpSession sessionRequest = request.getSession(true); 我知道如果会话不存在,它总是被创建的。 我还知道,默认情况下,这一行在响应中使用我请求servlet的同一域(例如domain.com)创建cookie 如果在x1.domain.com上创建了一个会话,那么我应该怎么做呢?我想将用户重定向到x2.domain.com,并且我想保留在第一个域(x1.domain.com

我使用jetty和GoogleGuice。我以这种方式初始化会话:

HttpSession sessionRequest = request.getSession(true);
我知道如果会话不存在,它总是被创建的。 我还知道,默认情况下,这一行在响应中使用我请求servlet的同一域(例如domain.com)创建cookie

如果在x1.domain.com上创建了一个会话,那么我应该怎么做呢?我想将用户重定向到x2.domain.com,并且我想保留在第一个域(x1.domain.com)上创建的JSSessionID

我尝试使用init参数启动jetty,在这里我将默认域设置为“.domain.com”,但这不是最好的(尽管它工作正常),因为我在不同的域(domain1.com、domain2.com等)上使用此应用程序

那么,解决这个问题的最佳方法是什么?我认为最好的方法是以某种方式将JSSessionID传输到新域。但是怎么做?:)


谢谢

浏览器不会根据cookie规则将
jsessionid
cookie发送到新域,那么在新域上访问相同的
jsessionid
有什么价值呢?因此目标是:user1已登录并在sub1.domain.com上获得sessiond1,然后,我存储user1使用sessiond1。因此,当我想找到哪个用户是当前用户时,我会在数据库中查找sessiond1。用户有可能被重定向到新的子域,例如sub2.domain.com。如果cookie存储在sub1.domain.com上,我将丢失用户登录的信息。所以我改变了jetty的默认设置,把cookies放在“.domain.com”上。它工作了,但是这个应用程序可以在多个域上访问,所以我不能用这种方式设置jetty。这是你的问题吗?根据cookie规则,浏览器不会将
jsessionid
cookie发送到新域,那么在新域上访问相同的
jsessionid
会有什么价值呢?所以目标是:user1已登录并在sub1.domain.com上获得sessiond1,然后,我存储user1使用sessiond1。因此,当我想找到哪个用户是当前用户时,我会在数据库中查找sessiond1。用户有可能被重定向到新的子域,例如sub2.domain.com。如果cookie存储在sub1.domain.com上,我将丢失用户登录的信息。所以我改变了jetty的默认设置,把cookies放在“.domain.com”上。它工作了,但是这个应用程序可以在多个域上访问,所以我不能用这种方式设置jetty。是你的问题吗?