标签:
一、完成一个简单的SSO单点登录的功能,需要两个部分的合作
统一的身份认证服务中心 -> 一个认证服务类
修改Web应用,使得每个应用都通过这个统一的认证服务来进行身份效验 -> 业务系统对每个访问进行拦截检查ticket(ticket是否已经单点登录过凭证)是否存在,存在发到认证中心校验是否正确。
二、步骤解析
1、认证服务中心负责生产ticket、验证ticket、销毁ticket。
2、业务系统通过过滤器拦截对每个请求进行拦截检查。判断系统是否已经登录或者是否其它业务系统进行过单点登录。
2.1判断系统是否已经登录:通过session是否为空 UserSession session = session.getAttribute("USERSESSION"); 不为空代表已经登陆过。
2.2判断其它业务系统进行过单点登录:通过检查ticket是否为空,如果不为空将ticket送到认证中心校验是否正确。
2.3如果用到session判断业务系统它们都有自己一套登陆入口程序。当然所有业务系统整合仅仅用单点登录为登陆入口程序也行。
3、ticket是单点登录凭证,保存在全局cookie提供给个业务系统读取。
三、疑问
1、认证中心是否只存在一个ticket?
2、如果ticket保存在全局cookie,那可以在自己系统内认证就行了,为什么要传到认证中心呢?
标签:
原文地址:http://www.cnblogs.com/chenweichu/p/5615160.html