一、CAS 服务端的处理逻辑
CAS 服务端总共对外暴露了 7 个接口,客户端通过访问这 7 个接口与服务
端交互,这 7 个接口为:/login、/logout、/validate、/serviceValidate、/
proxy、/proxyValidate、/CentralAuthenticationService。/login 是认证接口,/
logout 是退出接口,负责销毁认证 cookie,/validate、/serviceValidate 是验证
ticket 用的接口,其中/validate 是 CAS1.0 定义的,/serviceValidate 是 CAS2.0
定义的,其中/serviceValidate 返回 xml 格式的数据,/proxy、/proxyValidate 是
支持代理认证功能的接口,/CentralAuthenticationService 接口用于和远程的
webservices 交互。对于一般 web 应用的单点登录来讲,/login、/logout、/
serviceValidate 这 3 个接口已经可以满足要求。下面是我对 CAS 各个接口实
现的的详细说明。
/login:
登录流程这部分要考虑到不同种类用户凭证的获取方案,以及客户应用传
来的 service、gateway、renew 参数的不同取值组合,CAS 为了实现流程的高
度可配置性,采用了 SpringWebFlow 技术。通过阅读 CAS 发布包里的 login-