CAS集群解决方案
1. 总体方案 本方案的目的是搭建一个高可用,高可伸缩的中心认证服务。环境是 CAS 服务器是可任意扩展的,任意一个 CAS 服务节点均是等效的, CAS 服务器的状态信息是集中存储的; CAS 服务的客户端应用也是集群的环境,客户端应用服务器也是可任意扩展的,客户端应用的 session 状态信息是集中存储的,任意两个应用服务节点都是等效的; CAS 服务器和客户端应用的状态信息集中存储在缓存服务器 Memcached 上。该方案具有以下特性。 l 只支持 Tomcat6.x 和 Tomcat7.x 。 l 无单点故障。 l 能够应对 Tomcat 故障转移。 l 能够应对 memcached 故障转移。 注意:上述方案中有一个问题是如果 cas 服务端应用程序或者客户端应用程序将某些状态数据直接存储在 jvm 本地对象中的时候,则节点会出现不等效的情况,甚至出现不稳定的故障。该问题的解决办法是: 1. 避免这样的情况。 2. 同步各 jvm 实例之间的所有对象。 1.1. 正常登录流程(未单点登录)讨论 讨论用户的浏览器里无 TGT cookie值,即未曾登录过 CAS 服务器。 1. 用户浏览器访问必联网受保护的资源,假设用户未登录必联网应用,由于必联网各节点的 session 状态集中存储,则任意一个节点都是等效的。 2. 用户浏览器被转发请求到 cas 服务器