CAS 服务端登录验证流程(四)

来源:互联网 发布:嵌入式软件开发流程图 编辑:程序博客网 时间:2024/05/22 14:28

CAS 已经登录成功,cookies 中存在 TGC

登录另一个 CAS 客户端,此时转向 CAS 服务器 /login

<on-start>    <evaluate expression="initialFlowSetupAction" /></on-start>

InitialFlowSetupAction 的 doExecute 初始化完成后,登录流程流转到第一个state(ticketGrantingTicketExistsCheck)

<decision-state id="ticketGrantingTicketExistsCheck">      <if test="flowScope.ticketGrantingTicketId != null" then="hasServiceCheck" else="gatewayRequestCheck" />  </decision-state>  

由于 Cookie 中存在 TGC,并且在前面的初始化中,使用 TGC 查找出了 TGT,流程流转到第二个state(hasServiceCheck)

<decision-state id="hasServiceCheck">      <if test="flowScope.service != null" then="renewRequestCheck" else="viewGenericLoginSuccess" />  </decision-state> 

FlowScope 中存在 service,登录流程流转到第三个state(renewRequestCheck)

<decision-state id="renewRequestCheck">      <if test="requestParameters.renew != '' and requestParameters.renew != null"        then="serviceAuthorizationCheck" else="generateServiceTicket" />  </decision-state>  

Request 中不存在 renew 参数,登录流程流转到第四个state(generateServiceTicket)

<action-state id="generateServiceTicket">      <evaluate expression="generateServiceTicketAction" />      <transition on="success" to ="warn" />      <transition on="error" to="generateLoginTicket" />      <transition on="gateway" to="gatewayServicesManagementCheck" />  </action-state>

后续的流程与前面教程一致,请参考 CAS 首次登录流程

  • CAS 服务端登录验证流程(三):http://blog.csdn.net/pomer_huang/article/details/76862501
  • CAS 客户端登录验证:http://blog.csdn.net/pomer_huang/article/details/76862561