Session 如何在同一tomcat下共享存储在不同WebApp会话中的数据

Session 如何在同一tomcat下共享存储在不同WebApp会话中的数据,session,tomcat,share,Session,Tomcat,Share,我在一个tomcat下部署了几个Web应用,每个都有自己的上下文,但我需要在这些Web应用之间共享登录用户信息,例如,当用户从Web应用A登录时,其id、名称和其他信息存储在会话中,当它尝试访问其他Web应用时,我希望我们可以从会话中获取这些信息,根据servlet spce,会话不能在不同的Web应用程序之间共享,有没有办法在同一个tomcat中部署的不同Web应用程序之间共享会话中的数据 crossContext=“true” 2.使用webservice管理用户权限并不容易。Servlet

我在一个tomcat下部署了几个Web应用,每个都有自己的上下文,但我需要在这些Web应用之间共享登录用户信息,例如,当用户从Web应用A登录时,其id、名称和其他信息存储在会话中,当它尝试访问其他Web应用时,我希望我们可以从会话中获取这些信息,根据servlet spce,会话不能在不同的Web应用程序之间共享,有没有办法在同一个tomcat中部署的不同Web应用程序之间共享会话中的数据 crossContext=“true”


2.使用webservice管理用户权限并不容易。Servlet API不支持这种用法。有几种方法可以做到这一点:

  • SSO可以为您提供所需的大部分

  • 将信息存储在数据库中,并在需要时在其他web应用程序中查找

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

  • 使用跨上下文请求在web应用程序之间传递信息(有点难看,可能会产生安全问题)

  • 可能有很多我没想到的方法


  • 是的可能重复,我可以从crossContext=true的会话中获取数据,但还有一个问题,因为A类是由不同类加载器的两个webapp加载的,所以它们彼此不知道,当我尝试将会话中的A实例转换为另一个webapp中加载的A实例时,抛出classNotDefFondException,有没有办法解决这个问题?在一个jar中扭曲“一个类”。将jar放在tomcat/lib下。两个项目应该引用同一个类文件。