Central Authentication Service
以cas-server-2.0.10版为例。
Class
edu.yale.its.tp.cas.servlet.Login
这是一个处理登录的类,
生成实例时初始化用于登录验证的处理类。
用登录验证:
1、 验证COOKIE(在认证服务器域中),COOKIE中存放ticketID.通过ticketID,可以从缓存中获取具体的ticket实例(存放了用户标识)。
2、 如果通过COOKIE中存放的ticketID从缓存中获取到ticket实例,而且当前不是想重新进行登录认证。就调用grantForService方法。
3、 grantForService会重新生成一个当前这次请求服务的TOKEN(注意ticketID和TOKEN的区别)
4、 确认跳转到其它应用的COOKIE值为enabled/ disabled。那么就转向确认跳转页面或都直接跳转到目的服务地址。目的服务地址通过service参数传递。
==============================================
如果没有记录tookieid的COOKIE,则通过页面传递的用户名和密码进行登录认证(也可以是其它的认证方式)。
登录成功则在认证服务器域上在客户端设置COOKIE(setMaxAge(-1)表示是内存COOKIE不进行保存,浏览器关闭失效)。
edu.yale.its.tp.cas.servlet.ServiceValidate
目标应用程序请求验证当前传递的TOKEN是否合法。
初始化时获取ServiceTicketCache和GrantorCache实例。
ServiceTicketCache中的ticket实例是用于每次访问受限服务时检验访问的服务得到了授权。每进行一次受限服务检证就产生一个实例。在确认成功后删除。一般发生在从一个已登录的服务跳转到另一个受限服务时。
GrantorCache中的ticket实例是登录成功时进行保存。每次进行验证是否登录成功时,只更新其用于超时验证的时间。用户登录一次产生一个实例。
通过传递的service和ticket验证在ServiceTicketCache中存放的ServiceTicket实例是否存在,且其对应的service是否为当前的Service。如果成功就输出一个XML文件。XML中有用户登录标识username.
edu.yale.its.tp.cas.servlet.CacheInit
这是一个监听器,在应用启动后,读取初始化数据。初始化Ticket的超时时间和设置用于认证用的类型(以. edu.yale.its.tp.cas.ticketTicketGrantingTicket为例)。ServiceTicketCache、GrantorCache为单实例。
edu.yale.its.tp.cas.ticket.GrantorCache
extends ActiveTicketCache implements TicketCache
这是一个用于ticket创建、保存、监测超期的类。
监测是用一个后台守护线路定时轮循,如果ticket超期就删除。
保存是通过一个唯一字符串标识与ticket实例(edu.yale.its.tp.cas.ticket.TicketGrantingTicket)进行关联用于确认。
edu.yale.its.tp.cas.ticket .ServiceTicketCache
extends OTUTicketCache
edu.yale.its.tp.cas.ticket.TicketGrantingTicket
认证存放的内容,主要是登录者姓名,是否超期。
交互图:
===待续===
- 大小: 198.3 KB
分享到:
相关推荐
CAS的原理分析
CAS源码分析图,
CAS协议分析
JAVA CAS原理深度分析,JAVA CAS原理深度分析,JAVA CAS原理深度分析,JAVA CAS原理深度分析,JAVA CAS原理深度分析,JAVA CAS原理深度分析
Java CAS 原理分析整理...Java CAS 原理分析整理...Java CAS 原理分析整理...Java CAS 原理分析整理...Java CAS 原理分析整理...Java CAS 原理分析整理...
Java CAS原理深度分析
[置顶] SSO单点登录系列2:cas客户端和cas服务端交互原理动画图解,cas协议终极分析 http://blog.csdn.net/ae6623/article/details/8848107 目 录 1 引言 4 1.1 摘要 4 1.2 范围 4 1.3 读者对象 4 1.4 关键词 4 2 ...
分析shiro框架+cas单点登录系统的技术分析,解析了相关的技术难点
Java--CAS操作分析
shiro+cas实现单点登录 示例代码,送源码分析url:http://note.youdao.com/noteshare?id=a83380ee8fc6913162042e865689844e&sub=CD905CCCE4134A159326DC2DFC1AF268
个人集成的cas.war包,里面已经进行数据库等配置,解压之后修改配置文件数据库连接密码,修改sql即可
CAS2.0普通模式及代理模式的动画演示过程,通过该演示,能够初步了解单点登录及cas原理
CAS 原理及分析.............
CAS 原理及分析..............
CAS的全称是Compare And Swap 即比较交换;在计算机科学中,比较和交换(Conmpare And Swap)是用于实现多线程同步的原子指令。 它将内存位置的内容与给定值进行比较,只有在相同的情况下,将该内存位置的内容修改为...
CAS 原理及分析................
cas .net客户端的配置代码 CAS 与_net 集成的 “循环重定向”问题分析 - 邢少 - 博客园.mht根本不行的。 我自己另外找的一段代码