sso程序流程
程序流程:SSO 系统1) 用户在单点登录系统输入用户名(社编) 和密码,进行登录;2) 单点登录校验输入的用户名(社编)和密码,验证不通过,转到错误页面。3) 如果验证通过,则从映射表中取出该用户所
程序流程:
SSO 系统
1) 用户在单点登录系统输入用户名(社编) 和密码,进行登录;
2) 单点登录校验输入的用户名(社编)和密码,验证不通过,转到错误页面。
3) 如果验证通过,则从映射表中取出该用户所有能访问的应用系统,显示在sso 登录成功页面。转向登录成功页面之前,将该用户所有能访问应用系统的实际用户名都放到cookie 中(从映射表中获得)。也就是说,该用户能访问几个应用系统,就创建几个cookie ,并分别设置好每一个cookie 的域名(完整的域名,比如:aa.lgcns.com);
4) 用户在 sso 登录成功的页面,选择一个链接,请求某一个应用系统的页面; 下面是每个web 应用程序中的处理(filter 的处理)
5) 在每一个web 应用中需要身份验证的url 前分别加一个filter, 因此在进入当前请求的页面前,会先执行filter 程序;
6) 在filter 程序中首先检查是否存在一个session 对象,能从里面获得用户对象,如果可以,filter 程序不做任何的拦截, 直接进入请求的页面;
7) 如果不存在这样的一个session,filter 会进行下面几个步骤的处理:
a) 检查有没有该应用对应的cookie 存在,如果没有,说明未登录单点登录系统,转向单点登录的login.jsp;
b) 如果cookie 存在,继续进行,从cookie 中取出该应用的用户名和域名,分布式调用sso 系统中的一个servlet ,获得该用户在该应用中的实际密码;调用结束后从应用系统的用户表中根据用户名和密码获得该用户对象,并放入session 中。Filter 结束
8) 系统转向最初请求的页面。
处理结束