谢谢你们看我的帖子。
由于许可问题的灰色区域,我有两个实例正在运行。我正在使用Apache代理在两者之间进行无缝通信。
App1位于tomcatA中。
App2位于tomcatB中。
两者都需要用户身份验证,并使用会话来存储数据。 App1是唯一对外界可见的应用程序,所有传入App2的请求都是由App1的JavaScript生成的。不幸的是,App1有一个会话,并将该特定的JSESSIONID发送到来自App2的所有请求。由于App2中没有具有该特定ID的会话,因此它将返回错误。
有没有一种方法可以初始化具有特定ID的会话?
我有办法修改所有请求,以便将有效的会话ID放入标头中。
编辑:我需要App2来实现从App1发出的具有特定会话ID的请求映射到App2创建的会话。
最佳答案
即使两个应用程序都生活在同一个Tomcat中,会话也会有所不同,因为它们是按应用程序发布的。就个人而言,我并不完全相信这种设计。
如果您的问题是如何将身份验证传播到另一个应用程序,请使用单个登录应用程序,例如Josso或CAS。要共享会话数据,可以使用可从两个应用程序访问并通过JSON访问的集中式缓存。
是的,会话数据是错误的。
更新:您不能简单地实现像app2 / register / {app1会话ID}这样的握手协议-此时,您都拥有两个会话ID,并且可以相互关联。这也可以通过会话监听器来完成。
关于java - 创建具有特定 session ID的 session ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9330726/