j2ee整合单点登录和多点登陆

tianxia007 发布于 2014/04/16 14:15
阅读 1K+
收藏 9

J2ee单点登录

业务背景:
系统非业务逻辑操作用户(如admin),支持多点登陆,可以在多个地方登陆,并操作系统,接受该
用户的并发业务操作。
但是,系统业务逻辑操作用户(客户,如jsw001),只能单点登录,不允许同一个用户在多个地点登陆,
从而导致无法追踪和记录曾经发生过的操作,具体有谁操作。该类用户,必须严格控制操作日志的记录。


技术:
在线用户管理ClientManger
cookie技术
session


完成情况:
普通用户如jsw001登陆系统,其他地点就不能再使用该用户登陆,登陆页面提示该用户已登录。
当用户直接关闭浏览器,会使用本地存储的一个和session同期的cookies(30m),用户再次打开浏览器
意图登陆系统,会直接跳转到系统主页,只有当正常退出,才允许用户登陆其他账号。
admin用户具备以上基本逻辑,admin支持多点登陆。该用户的多点登陆用程序控制。缺点是不
易于维护和提权。


可能存在的bug:
first————在线用户监听器中,某个时间后会触发删除当前session  id的client,cookie时间为30分钟,
该模块的业务逻辑要求,这个触发时间必须=cookie有效时间。当用户重新登陆,矫正触发事件,还要
矫正cookie有效时间()。
矫正目的:让session和cookie同步失效。
(该问题已经规避)如果不矫正:一般来说,30分钟以后,如果用户仍然强退,将会出现bug,系统已预留解决
方案:运行startsystem.jsp:例如  http://111.111.11.1/startsystem.jsp
解决方法:
cookie和在线用户矫正最重要的一步
ClientManager.getInstance().updateClinet(session.getId(),client);

共享:因为重构了很多内容,不好提取代码,提供集成式解决方案,只是提供以下思路吧


bug记录:
1.cookie有,session中没有该用户,别跳转。2014年4月14日 16:58:06
修改登录页面即可
代码:怎么上传附件啊

加载中
返回顶部
顶部