单点登录 插件方式

同事整理的插件方式:
流程体: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.

你可能感兴趣的:(jsp,应用服务器,socket,浏览器)