我在以下域中提供了 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 以克隆主站点 session token 的方案。实现起来很复杂。
两种可能的 SSO 技术是 Shibboleth 和 JASIG CAS。
有关更多详细信息,请参阅 Single Sign On across multiple domains 的答案
What if I somehow overload cookie creation and set .domain1.com and .domain2.com where required?
如果 foo.domain1.com
尝试使用路径 .domain2.com
或 anything.domain2.com
设置 cookie,浏览器出于安全原因将忽略它。您必须通过复杂的重定向流程才能在两个域上设置 cookie。阅读我链接到(上方)的问题/答案以了解更多详细信息。
关于java - 如何在 Tomcat 上将 JSESSIONID 域设置为二级域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6137760/