Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring Security中如何在子域之间共享会话_Java_Spring_Session_Tomcat_Spring Security - Fatal编程技术网

Java Spring Security中如何在子域之间共享会话

Java Spring Security中如何在子域之间共享会话,java,spring,session,tomcat,spring-security,Java,Spring,Session,Tomcat,Spring Security,我使用spring和spring安全性来实现多个域和子域项目。 喜欢 test.example.com/damo1 test.example.com/demo2 两者都是具有相同域的不同应用程序。在这两个应用程序中,我都应用了spring安全性。我想登录demo1应用程序,但也要求再次登录demo2应用程序。我想申请单点登录 Cookies共享成功,但仍要求登录。 有什么可以帮助我改变春季安全吗? 请帮帮我? Thanx提前您需要在两个不同的应用程序之间共享会话ID 为此,您需要一种在集群节点之

我使用spring和spring安全性来实现多个域和子域项目。 喜欢 test.example.com/damo1 test.example.com/demo2

两者都是具有相同域的不同应用程序。在这两个应用程序中,我都应用了spring安全性。我想登录demo1应用程序,但也要求再次登录demo2应用程序。我想申请单点登录

Cookies共享成功,但仍要求登录。 有什么可以帮助我改变春季安全吗? 请帮帮我?
Thanx提前

您需要在两个不同的应用程序之间共享会话ID

为此,您需要一种在集群节点之间共享会话的方法(pref:database)。当用户(从任何应用程序)获得身份验证时,将sessionId和userdetails保存在数据库中


当用户向服务器发送请求时,使用数据库中的会话Id验证会话Id。

这是一个应用程序容器问题。通常,如果没有特定于容器的设置,您将无法在应用程序之间共享会话。如果您想使用Spring Security解决此问题,您可以创建自定义SecurityContextRepository或使用类似CAS的SSO解决方案。