session - 如何在同一个tomcat下共享存储在不同webapps session 中的数据

标签 session tomcat share

我在一个tomcat下部署了几个webapps,每个都有自己的context,但是我需要在这些webapps之间共享登录用户信息,比如当用户从webapp A登录时,它的id,name等信息被存储在 session 中,当它尝试访问其他 webapp 时,我希望我们可以从 session 中获取这些信息,根据 servlet spce,session 不能在不同的 webapp 之间共享,有没有办法在 seesion 中部署的不同 webapp 之间共享这些数据同一个 tomcat?

最佳答案

不容易。 Servlet API 不支持这种用法。有几种方法可以做到这一点:

  1. SSO 可以满足您的大部分需求。

  2. 将信息存储在数据库中,并在需要时在其他 Web 应用程序中查找。

  3. 创建/查找一些可从两个 Web 应用程序访问的共享存储(即某种形式的缓存)。您需要非常小心地使用这种方法,以免造成任何内存泄漏。

  4. 使用跨上下文请求在 Web 应用程序之间传递信息(有点丑陋,可能会产生安全问题)。

  5. 可能是一堆我没想到的方法。

关于session - 如何在同一个tomcat下共享存储在不同webapps session 中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10410621/

相关文章:

mongodb - 如何删除快速 session cookie

spring - 使用 RestTemplate 时 "wait"中的许多线程

java - Eclipse 中的 Apache Tomcat 7 无法启动 : A child container failed during start

Facebook 分享网址仅在第二次点击时显示预览详细信息

javascript - 如何在React Native 'Share'函数中设置动态url

android - Facebook 通过 android 应用程序共享 - 更改 "shared via <AppName>"的 url

jquery - 使用 jquery 保存 session 变量似乎不起作用

ios - Multipeer Connectivity Framework - Lost Peer 留在 session 中

jsp - JSP 中的 session 交换问题

eclipse - 文档库 [path]\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\[project] 不存在或不是可读目录