浏览 2978 次
锁定老帖子 主题:单点登录 插件方式
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-02-19
最后修改:2009-02-19
流程体:1、用户UAP登录的index.jsp页面 2、UAP系统 3、应用系统列表appList.jsp(这是具体的应用系统的url) 4、具体的应用系统(这里放了UAP的plugin的插件,主要用于与 UAP通信) 5、客户端(为浏览器) 单点登录流程:首先用户是通过index.jsp登录到appList.jsp,这时UAP会根据用户产生一个登录ticket,以userID及ticket、登录时间的方式存于数据库;当单击具体要登录的某个应用系统时,拿appList.jsp的appID传到UAP ,UAP会从cookies中得到userID及ticket,到数据库中查,如果查到了(说明用户是登录过的),就产生一个新的序列(一般叫票据AuthTicket)和登录时间存于另一个数据库表中,并且把AuthTicket发到具体的应用系统中,具体的应用系统因为是集成了我们事先的plugin的插件,所以plugin会把刚才得到的 AuthTicket通过socket发到UAP,UAP在数据库中找,如果找到了,就记录一下操作时间,得到相应的用户id,并且得到应该给应用系统提供的信息,返回到应用系统。这样票据验证就通过了,接下来就可以安全的操作了,之后的操作就与UAP无关了。 如何判定应用系统登录超时: UAP会一直有一个线程,定时删除过期的在数据库存的userID及AuthTicket记录(比如是1分钟一删,删除一些当认为登录超过2分钟或票据验证成功的――指有最后操作时间的);登录超时时,这时plugin插件就做了票据验证失败的响应,结束用户访问界面的权限。 注:每个应用系统会产生一个不同的ticket. 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-02-19
呵!研究下CAS或许你会有更好的解决方案!
|
|
返回顶楼 | |
发表时间:2009-02-19
clasp 写道 呵!研究下CAS或许你会有更好的解决方案! 看来或许仁兄在这方面研究颇深,我也听说过用CAS或者其他第三方的工具实现起来是比较方便,不过我们公司现在在单点登录以及统一身份认证服务器这样的产品,还没有考虑到用CAS。一起学习! |
|
返回顶楼 | |