跨域共享会话

时间:2009-02-04 14:20:18

标签: session jboss cross-domain

目前,我们在跨子域共享同一会话时遇到问题。我们正在使用Jboss服务器。

用户访问与其区域设置相对应的网站,例如en_US具有唯一的域名。创建对应于域的cookie。允许用户转到具有不同域名的其他语言环境。问题是为另一个域创建了一个新cookie,它丢失了前一个会话中存储的信息。我们需要跨域使用相同的会话cookie。

前域名: sample.au sample.co.uk sample.us

我要求研究iframe / p3p解决方案。我是这个概念的新手。你能指导我如何实现这个目标。

提前致谢

4 个答案:

答案 0 :(得分:10)

您需要的是single sign on服务。您可以通过集中站点Z管理会话/登录来为您的站点滚动自己。

  • 用户到达网站A,不提供任何会话ID
  • 网站A将用户重定向到网站Z
  • 站点Z可能在对用户进行身份验证后创建会话,并删除站点Z cookie,将用户重定向回站点A,其URL包含额外的有效负载,告知站点A用户会话ID是什么
  • 网站A删除会话cookie,允许用户继续在A
  • 上使用其共享会话

现在,当用户访问网站B时

  • 网站B看不到会话,重定向到网站Z
  • 网站Z看到它已经为这个人开了一个会话,用会话ID有效负载将他们直接引回到B
  • 网站B删除会话cookie,这一切都很好。

换句话说,您的信号登录服务可以为用户提供他们可以挂起的内容(会话cookie)以及他们可以传递给参与网站以证明他们已通过身份验证的内容。

答案 1 :(得分:5)

如果Cookie对常见的更高级域有效,则只能在域中共享。因此foo.example.combar.example.com可以共享为example.com设置的Cookie。请注意,Cookie的 Domain 参数值必须为.example.com(带有前导点)才能完成此操作。

答案 2 :(得分:3)

您需要将Cookie的域设置为以点为单位的顶级域名,例如对于subdomain1.domain.com和subdomain2.domain.com,您可以将会话cookie的域名:.domain.com。

在JBoss中,你应该能够为javax.servlet.http.Cookie类中的所有子域覆盖它。

答案 3 :(得分:0)

在域之间共享Cookie

http://www.15seconds.com/issue/971108.htm

似乎使用“重定向”来翻译域之间的cookie。 但它太复杂了。仅供参考。