单点登录

单点登录的定义:
    多个系统做一体化时,要求用户使用多个系统就如果使用一个系统一样。这样就存在一个登录的问题,因为不同的系统是分别维护自己的用户的。所以在一个系统登录后,该系统的session并不能被别的系统共享,而且也不应该被别的系统共享。那么如何保证用户在一个系统中登录一次,就可以正常地使用别的系统呢?这就是单点登录需要解决的问题:在任意一个系统中登录一次,就可以访问与该系统一体化关联的其他系统。
注意:单点登录组件还必须解决单点注销的问题。

这个单点登录组件的设计思想:
    这个单点登录组件是用于在weblogic环境下,且多个系统部署在weblogic的同一个域中的情况。设计思想是这样的:
    0。服务启动时,就在各个系统各自的ServletContext中维护一个空的用户表。
    1。用户1在A系统中登录时,A系统向自己系统维护的用户表中添加用户1的信息
    2。当用户1从A系统切换到B系统时,B系统先检查自己系统是否有该用户的session信息,如果没有,说明用户1没在B系统登录过,那么就查找A系统的ServletContext中的用户表,看是否有该用户的信息,如果有,说明用户1已经在A系统中登录,那么B系统就重建用户1在B系统中的session,这样用户1从A平台切换到B平台时就比较平滑,不会感觉到自己是在跨平台操作。
    3。当用户1在A平台的session失效时,A系统负责移除自己系统维护的用户表中对应的用户1的信息。
    4。当用户在任何一个系统中注销时,该系统负责移除所有系统的用户表中对应的用户1的信息。这样就保证了单点注销。(但是这样还是有问题,主要是注销时,没法清除别的系统中的session,也就是说如果用户1在A系统中已经登录,而且已经切换到系统B中,这时,系统A中的session还没过期,如果这时,用户1在B系统中注销了,由于B系统中无法获取A系统中用户1的session,所以不能手动清除session,只能等A平台中的session自动失效。)

  单点登录组件已被打成jar包,经过测试,还是比较好用的。资源文件在我机器的重要文件这个目录下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值