Java 在Tomcat服务器中的应用程序之间传递数据

Java 在Tomcat服务器中的应用程序之间传递数据,java,tomcat7,cross-application,Java,Tomcat7,Cross Application,我们在Tomcat中部署了几个应用程序,希望添加一个应用程序来处理所有其他应用程序的身份验证 在Tomcat配置(server.xml)中,所有应用程序都定义为不同的主机元素,如下例所示: <Host name="loginapp.localhost" appBase="loginapp" /> <Host name="webapp1.localhost" appBase="webapp1" /> <Host name="webapp2.localhost" ap

我们在Tomcat中部署了几个应用程序,希望添加一个应用程序来处理所有其他应用程序的身份验证

在Tomcat配置(server.xml)中,所有应用程序都定义为不同的主机元素,如下例所示:

<Host name="loginapp.localhost" appBase="loginapp" />

<Host name="webapp1.localhost" appBase="webapp1" />
<Host name="webapp2.localhost" appBase="webapp2" />
...
但我不确定如何实现这一点,因为我的应用程序运行在同一个Tomcat服务器中,但被不同的域名访问。这样可能吗?或者我的案子还有其他选择吗


编辑:

显然,我上面的“解决方案”只能在一个应用程序中使用


我现在在进一步研究中发现的是JNDI资源。这是我可以用来在我的应用程序之间共享一些数据的东西吗?

我没有任何解决您的问题的方法,但我仍然必须说
getRequestDispatcher
应该只在同一个Webapp中使用,因为它将您的web应用程序的上下文根添加到URL中(据我所知)。您所描述的是单点登录(),但我认为这适用于同一主机元素内的应用程序,而不是跨多个主机的应用程序。@MichaelPeacock可能不太清楚,但我不希望用户在身份验证后对所有应用程序进行身份验证,但只针对原始请求指向的单一应用程序。@Ephi是的,所以我想这对我来说不是解决方案,谢谢。为什么不使用CAS系统呢?这里有几点:我没有解决您的问题的任何解决方案,但我仍然必须说
getRequestDispatcher
应该只在同一个Webapp中使用,因为它将您的web应用程序的上下文根添加到URL(据我所知)。您描述的是单点登录()但我认为这适用于同一主机元素内的应用程序,而不是跨多个主机的应用程序。@MichaelPeacock可能不太清楚,但我不希望在验证后对所有应用程序对用户进行验证,而只对原始请求指向的单个应用程序进行验证。@Ephi是的,所以我想那对我来说不是解决办法,谢谢。为什么不使用CAS系统呢?这里有几点:
request.getSession().setAttribute("sharedId", shared);
request.getRequestDispatcher("/URLofOtherServlet").forward(request, response);