概念:
- TGT:Ticket Granted Ticket(俗称大令牌,或者说票根,他可以签发ST),存在cas_server端。
- TGC:Ticket Granted Cookie(cookie中的value),对应cas_server,存在Cookie中,根据他可以找到TGT。
- ST:Service Ticket (小令牌),是TGT生成的,默认是用一次就生效了。也就是上面的ticket值,对应每一个client。取得ticket后进入TicketValidationFilter过滤器,该过滤器主要验证ticket是否有效。
TGT与TGC的关系就像SESSION与Cookie中SESSIONID的关系。
会话(session)
- browser到认证中心登录后,browser和认证中心之间建立起了会话,我们把这个会话称为全局会话,即是基于cas_server的session
- 在子系统和browser之间建立起局部会话,即子系统的session
用户访问应用时,首先判断局部会话是否存在,如存在,即认为是登录状态,无需再到认证中心去判断,如不存在,就重定向到认证中心判断全局会话是否存在,如存在,通知该应用,该应用与客户端就建立起它们之间局部会话,下次请求该应用,就不去认证中心验证了。所以全局session过期,局部会话必须过期,否则导致子系统跟cas_server会话不同步的问题。
sso登录系统.png
browser请求,cas客户端收到请求判断用户是否登录。判断过程在AuthenticationFilter过滤器中进行。AuthenticationFilter主要判断用户是否登录,未登录则重定向到登录页面。