在两个 Web 应用程序之间同步会话 [英] Synchronizing session between two web application

查看:58
本文介绍了在两个 Web 应用程序之间同步会话的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两个在 tomcat 上运行的 Web 应用程序,它们部署在两台不同的机器上.我的一个应用程序是父母,另一个是孩子.我登录到我的父应用程序并点击父应用程序页面之一上的链接我向我的子应用程序发送浏览器请求,该请求在单独的浏览器窗口中打开其页面之一.在这种情况下,我希望我的两个应用程序共享相同的超时值,并且表现得像一个完整的应用程序.

I have two web application running on tomcat which are deployed on two different machines. One of my application is a parent and other is a child. I login to my parent application and hitting a link on one of the pages of parent application i sends a browser request to my child application that open's one of its page in a separate browser window. In this scenario i would want both of my application to share the same timeout value and should behave like one complete application.

  1. 如果我从我的父应用注销,我的子应用也应该注销
  2. 如果我关闭父窗口,父母应该和孩子一起注销
  3. 如果我关闭子窗口,孩子应该注销,而父母应该保持登录状态
  4. 如果两个窗口都关闭,父子节点都应该退出

解决方案:

  1. 将父会话超时设置为某个值......比如 30 分钟
  2. 在父级上创建 REST 服务..让我们说parentisAlive()"
  3. 在 child 上创建一个 REST 服务..让我们说childisAlive()"
  4. 在父级和子级上创建会话侦听器
  5. 每个会话侦听器都会调用其各自的 REST 服务
  6. REST 服务将根据其自己的应用程序的 sessionID 相互通信
  7. 父母会保留(内存/数据库)孩子的 sessionID,反之亦然
  8. 当每个超时值达到特定值时,相应的应用程序会话侦听器将被激活......比如 20 分钟
  9. 会话侦听器将调用各自的 REST 服务,这些服务将负责同步彼此的会话超时值

任何人都可以建议这是否是实现会话同步的好解决方案,有人看到这有什么缺陷吗?

Can anyone please suggest if this would be a good solution to implement session synchronization, does anyone see any flaw in this?

推荐答案

Tomcats 单点登录 阀门将满足您的大部分需求.但是,如果您关闭浏览器窗口,会话仍然会保留,只要窗口或选项卡上至少是打开的.

Tomcats Single sign on valve will handle most of your needs. But if you close a browser window the sessions will still remain, as long as at least on window or tab is open.

这篇关于在两个 Web 应用程序之间同步会话的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆