如何在Tomcat上将JSESSIONID域设置为第二级?

问题描述

| 我在以下域中的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?     

解决方法

简单的答案是没有简单的答案。本质上,您需要一个主登录站点,以及一个方案,通过该方案,辅助站点可以为其域设置cookie,以克隆主站点的会话令牌。实现这一点很复杂。 Shibboleth和JASIG CAS是两种可能的SSO技术。 有关更多详细信息,请参阅跨多个域的“单点登录”的答案   如果我以某种方式使cookie创建过载并在需要的地方设置.domain1.com和.domain2.com怎么办? 如果
foo.domain1.com
尝试设置路径为
.domain2.com
anything.domain2.com
的cookie,出于安全原因,浏览器将忽略它。您必须经历一个复杂的重定向过程,才能在两个域上都设置Cookie。阅读我链接到(上面)的问题/答案,以获取更多详细信息。