如何将会话从一个Tomcat服务器转移到另一个?

我们有一个用于网上商店的Tomcat服务器,我们需要在他/她登录时将用户转移到另一个(安全)服务器。这里是一个详细的解释:

1)我们有两个Tomcat服务器:一个是“常规”(HTTP),另一个是安全(HTTPS)

2)用户最初访问常规服务器

3)当他们登录时,我们需要获取他们的登录数据,以及他们当前所在页面(或试图查看)的信息,将其传递给安全服务器并进行实际登录; 例如,未登录的用户会看到产品列表,点击“购买”并显示弹出窗口,要求用户登录; 用户输入他/她的凭证,并将这些凭证以及有关他想要购买的产品的信息传递给安全服务器; 安全服务器接收这些,执行登录并向用户显示所请求的产品

怎么可以这样做? 请注意以下事项:

1)我们尝试过使用cookies,但我们决定不采用这种方式

2)将会话保持到数据库然后让安全服务器获取它也不是一个选项

还有其他方法吗? 我们正在考虑创建一个对象,然后将其作为HTTP POST参数传递,但我不确定如何做到这一点(我已经完成了任务)。

对于它的价值,我们使用的技术是Tomcat服务器,Wicket,Spring,iBatis和MySQL。

提前致谢 :)

如果要在不同的Tomcat实例之间共享会话,可以将它们配置为具有会话复制的集群: http : //tomcat.apache.org/tomcat-7.0-doc/cluster-howto.html

然后,您可以将Apache HTTP Server配置为负载均衡器,确保HTTP请求转到服务器1,HTTPS请求转到服务器2。

但是,您也可以只配置一个Tomcat实例(或N个相同的实例)来处理HTTP和HTTPS,并确保使用标准的安全访问( ...CONFIDENTIAL...在web.xml中)或特定于框架的配置。

不确定我是否掌握了您想要的内容,但您可以将“弹出窗口”设置为从安全应用程序提供给受保护URL的页面。 这将导致身份validation在安全服务器上发生,您可以从那里开始。 例如,如果不安全的产品页面位于www.domain.com/browse/id1上,那么“购买”按钮会打开一个弹出窗口,提供secure.domain.com/buy/id1,从而在传输产品时进行身份validationurl上的ID。