如何将会话从一个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,并确保使用标准的安全访问( ...
在web.xml中)或特定于框架的配置。
不确定我是否掌握了您想要的内容,但您可以将“弹出窗口”设置为从安全应用程序提供给受保护URL的页面。 这将导致身份validation在安全服务器上发生,您可以从那里开始。 例如,如果不安全的产品页面位于www.domain.com/browse/id1上,那么“购买”按钮会打开一个弹出窗口,提供secure.domain.com/buy/id1,从而在传输产品时进行身份validationurl上的ID。