一个单点登录问题,请banq和J道友指教。

10-07-01 sonnylys
场景:

有www.a.com(A), www.b.com(B)和www.c.com(C)三台主机。 A主机部署了appA应用,B主机部署appB应用,C主机部署了单点登录认证服务器应用。

appA和appB通过主机C做基于Cookie的单点登录应用。

问题描述:

假如以下条件已成立: 主机A和主B都已成功向认证主机C获得了认证票据,并通过认证票据从认证服务器C获得了会员信息,同时在本地(appA和appB)内存维护了一份票据和关联的会员登录信息,目的是避免每次都向认证服务器请求会员信息。

本人想用认证服务器C的session来维护会员登录状态的活存周期,也就是当证服务器C的session过期销毁事件里加上向各客户端(appA,appB)发出注销通知消息。这样一来,我想到会存在一个问题:假如会员只是在认证时请求了1次服务器C,之后只访问appA或aapB, 那岂不是造成会员一直在使用系统(因为一直在访问aapA\aapB), 但服务器C的session却因一直没检测到有会员的请求而过期,从而引起登录状态的注销?

不知我描述是否清楚,其实我是想寻找一种管理认证票证(或是说登录状态)存活周期的方案。请大家指教。

              

3
sonnylys
2010-07-01 11:00
在每个应用本地维护一份会员登录状态信息,虽然可以避免每次都向服务器请求,但也引起其它问题,假如集群环境下,appA应用部署在1.1.1.ip1和1.1.1.ip2两台主机上,当认证服务器注销了登录状态,向appA发送通知,要求aapA也注销,但集群环境下,是不是只能注销1.1.1.ip1或是1.1.1.ip2其中一台主机?

不知我的理解正不正确?

chuangsheng
2010-07-01 17:39
能否这样,将会话交与被登录的应用维护如何?

sonnylys
2010-07-01 17:55
2010年07月01日 17:39 "chuangsheng"的内容
能否这样,将会话交与被登录的应用维护如何? ...

能否说详细点?

banq
2010-07-01 19:44
2010年07月01日 10:44 "sonnylys"的内容
但服务器C的session却因一直没检测到有会员的请求而过期,从而引起登录状态的注销? ...

使用terracotta之类分布式缓存来进行session在a b c之间同步复制。

猜你喜欢
3Go 1 2 3 下一页