多个GWT会话在同一个浏览器中并行

时间:2011-12-16 14:02:19

标签: session gwt spring-security smartgwt browser-tab

我们有一个SmartGWT应用程序(带有Spring安全性),我们希望同一个用户能够登录 使用相同的登录信息,但为不同的选项卡获取不同的会话。

  1. 用户1打开带有应用程序的浏览器选项卡Tab1
    • 获得会话Session1
    • 选择一个角色......
  2. 用户2使用应用程序

    打开浏览器新的Tab2
    • 获得新会话Session2

    用户并行使用Tab1和Tab2。会议不应该影响彼此。

  3. 我们当前的应用程序使用spring security。基于角色可能没有问题 GrantedAuthorities为用户。但我们宁愿完成不同的会议 简化应用程序的代码。

    在不使会话无效的情况下,似乎不可能使用基于Cookie的会话系统。 但是会话不应该无效......只有新会话应该附加到新选项卡。

    HttpSession.getSession(true)仅在不存在时才返回新会话。

    似乎可以使用URL重写方法来创建新会话。 1有人能告诉我们是否可能和

    1a如果是,请告诉我们实施问题 或步骤。

    一方面我不完全确定如果使用URL重写方法会产生什么后果。

    2这是否意味着如果客户端发送没有会话ID的请求,则会创建新会话

    3网址重写方面是否会对GWT后端产生其他影响

1 个答案:

答案 0 :(得分:1)

由于只有一个会话可以附加到浏览器和网站,我可以考虑的唯一方法是为每个选项卡设置不同的子域,这将强制创建新会话(在还指向一个新的登录,因此openid登录将很方便。

我的意思是拥有,例如标签1中的www.yourdomain.com,标签2中的www2.yourdomain.com,标签3中的www3.yourdomain.com等等,最多可达到合理的最大标签数。< / p>

或者,如果可能的话,教育用户拥有2个或3个不同的浏览器(例如Firefox,Opera,Chrome,Safari,提及好的浏览器)会更加简单。