java - 创建具有特定 session ID 的 session

标签 java javascript jquery httpsession

谢谢大家看我的帖子。

由于许可问题中的灰色区域,我有两个 Tomcat 实例正在运行。我使用 Apache 代理在两者之间无缝通信。

App1 位于 tomcatA 中。 App2 位于 tomcatB 中。

两者都需要用户身份验证并使用 session 来存储数据。 App1 是唯一对外界可见的,所有进入 App2 的请求都是由 App1 的 JavaScript 生成的。不幸的是,App1 有一个 session 并将该特定的 JSESSIONID 发送到来自 App2 的所有请求。由于 App2 中不存在具有该特定 id 的 session ,因此它会返回错误。

有没有办法让我初始化具有特定 ID 的 session ? 有没有办法让我修改所有请求,以便将有效的 session ID 放入 header 中。

编辑:我需要 App2 认识到来自 App1 的请求具有特定的 session ID 映射到 App2 创建的 session 。

最佳答案

即使两个应用程序都位于同一个 Tomcat 中, session 也会不同,因为它们是按应用程序发出的。就我个人而言,我并不完全相信这种设计。

如果您的问题是如何将身份验证传播到另一个应用程序,请使用单点登录应用程序,例如 Josso或 CAS;要共享 session 数据,您可以使用可从两个应用程序访问并通过 JSON 访问的集中式缓存。

是的, session 数据很糟糕。

更新:你不能简单地实现一个握手协议(protocol),例如:app2/register/{app1 session id} - 此时你们都持有两个 session ID 并且可以相互关联。这也可以通过 session 监听器来完成。

关于java - 创建具有特定 session ID 的 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9330726/

相关文章:

java - Android 上的实时蓝牙 SPP 数据流只能工作 5 秒

javascript - Setinterval 动画有时暂停

jquery - 有条件的远程验证

javascript - 在不应用的情况下将一个数组插入(拼接?)到另一个数组中

javascript - 如何将 <label> 和普通文本与 Kendo UI 对齐?

javascript - Keyup:选中复选框时添加值

javascript - 在 jQuery 中取消注册委托(delegate)事件

java - 如何在hibernate中执行内连接3个类

java - 如何通过 .bat 文件将参数传递给另一个 Java 程序?

java - 立即重新抛出捕获的异常与抛出声明之间的区别