我们有一个SmartGWT应用程序(具有Spring安全性),我们希望相同的用户能够登录使用相同的登录信息,但不同的选项卡获得不同的会话。
- 用户1在应用程序中打开浏览器选项卡Tab1
- 获取会话Session1
- 选择角色…
-
用户2用应用程序
打开一个新的Tab2浏览器- 获得一个新会话Session2
用户同时使用Tab1和Tab2。各会话之间不应相互影响
我们当前的应用程序使用spring安全性。基于角色可能没有问题用户的GrantedAuthorities。但我们宁愿有完全不同的会议,以便简化应用程序的代码
基于Cookie的会话系统似乎不可能不使会话无效。但是会议不应该无效……只有一个新的会话应该附加到新的选项卡。
HttpSession.getSession(true)只在不存在的情况下返回一个新的会话。
似乎可以使用URL重写方法来创建一个新的会话。谁能告诉我们这是否可能?
1a如果是,请给我们一个实现问题的想法或者步骤。
一方面我不完全确定如果使用URL重写方法会有什么后果。
2这是否意味着如果客户端发送一个没有会话id的请求,就会创建一个新的会话
url重写方面是否对GWT后端有其他影响?因为只有一个会话可以连接到浏览器和网站,我能想到的唯一方法是为每个标签有不同的子域,这将强制创建新的会话(在这一点上也是一个新的登录,所以一个openid登录将是方便的)。
我的意思是,例如,在标签1中有www.yourdomain.com,在标签2中有www2.yourdomain.com,在标签3中有www3.yourdomain.com,等等,直到一个合理的最大标签数量
或者,如果可能的话,教育用户使用2到3种不同的浏览器(例如Firefox, Opera, Chrome, Safari,举几个好的例子)会简单得多。