CAS 服务器持有 ST 与 TGT+客户端的映射关系,客户端持有 ST 与用户 Session 的映射
关系,在 renew 的情况下,每次客户端根据用户 Session 将 ST 发送给 CAS 服务器端,
服务器端检验 ST 是否存在即可知道此用户是否已登陆。在普通情况下,用户第一次登陆
应用时,客户端将用户页面 重定向到 CAS 服务器,服务器取出用户 cookie 中的 TGT,
检验是否在服务器中存在,若存在则生成 ST 返回给客户端 (若不存在则要求登陆,登陆
成功后同样返回 ST 给客户端),客户端拿到 ST 后再发送给 CAS 服务器认证是否为真实
ST,认证成功即表示登陆成功
我们可以看到,其实我们需要做的就是第 2 步中返回的登陆页面由服务器改放到客户端,
然后让第 3 步中由用户在客户端上输入用户名密码但提交到 CAS 服务器端,登陆成功与失
败都将转向客户端。
服务器详细登陆流程
对于上一节讲述的整体登陆流程,CAS 3.3.1 服务器端上是依赖于 Spring Webow
1.0.3 实现的,其主要流程在/WEB-INF/login-webow.xml 中配置,配置的页面流活动
图如下(有删节):