如何在两个不同的应用程序服务器上托管的两个Web应用程序中共享会话?

时间:2014-03-24 07:51:38

标签: jsp session servlets payment-gateway

我正在尝试与支付网关进行交互,我希望在此处分享会话,以便我可以跟踪支付网关处理付款的用户是否是针对其请求的用户。 / p>

我会在下面解释一下:

1. http://localhost:7080/requesterApp in WebSphere application server 1
2. http://localhost:8090/paymentApp in WebSphere application server 2

我通过提交HTML表单将用户重定向到支付网关。

现在,我如何确保user1针对从http://localhost:7080/requesterApp付款到http://localhost:8090/paymentApp的请求  是为同一个用户处理的?

这应该通过会话处理吗?

1 个答案:

答案 0 :(得分:0)

问题不是面向付款,而是建筑问题 server1需要将信息传递给server2,通信需要在后端完成 假设两个服务器托管不同的应用程序,那么WebSphere会话复制不是解决方案。您需要做的就是让requestterApp在后端调用paymentApp并让它知道用户正在前进。只要有安全(IP白名单),就可以通过HTTP或RMI或您选择的任何技术进行通信。

所以:

  1. requesterApp通知paymentApp该用户" James Dean"即将打它的服务器。此时传递所有必需参数。
  2. paymentApp将数据存储在其末尾并返回UUID令牌
  3. requesterApp为用户呈现表单,并将令牌嵌入为隐藏字段
  4. 用户提交表单并点击paymentApp
  5. paymentApp使用令牌检索用户数据。如果需要,它可以确保它是相同的用户IP,cookie等。