我在以下域中提供Tomcat服务:
sub1.domain1.com
sub2.domain1.com
sub1.domain2.com
sub2.domain2.com
现在我需要为domain1提供透明授权(Spring Security)。如果用户登录sub1.domain1.com,他也在sub2.domain1.com上获得授权。
这可以通过Tomcat的设置
来完成sessionCookieDomain=".domain1.com"
但是现在sub1.domain2.com上的授权根本不起作用,因为所有JSESSIONID cookie域总是设置为“.domain1.com”。
我怎样才能让tomcat只为cookie使用第二级当前域?
答案 0 :(得分:2)
简单的答案是没有简单的答案。基本上,您需要一个主要登录站点和方案,以便辅助站点可以为其域设置克隆主站点会话令牌的cookie。实现这一点很复杂。
两种可能的SSO技术是Shibboleth和JASIG CAS。
有关详细信息,请参阅Single Sign On across multiple domains
的答案如果我以某种方式超载cookie创建并在必要时设置.domain1.com和.domain2.com怎么办?
如果foo.domain1.com
尝试设置包含路径.domain2.com
或anything.domain2.com
的Cookie,则出于安全原因,浏览器会忽略该Cookie。您必须经历复杂的重定向舞蹈才能在两个域上设置Cookie。阅读我链接到(上方)的问题/答案以获取更多详细信息。