背景
随着系统业务量的不断增长,单个系统的代码量越来越庞大,内部耦合越来越强,后期维护及扩展相当困难;
一般在这种情况下,我们都会采取对系统进行拆分,形成多个子系统,分开部署;
由于系统的拆分,我们又需要解决单点登录的问题。
CAS单点登录介绍
单点登录,指的是在多个应用系统中,用户只需要进行一次登录,就可以认证访问所有组件系统。单点登录有很多种实现方案,本案例总结主要关注Apereo的CAS实现方案,目前主要是基于该方案实现单点登录。
CAS单点登录流程
先来看下整体的流程图,了解下CAS单点登录整体是如何实现的:
- 步骤1、用户访问集成了CAS客户端的子系统EPS;
- 步骤2、CAS客户端的AuthenticationFilter过滤器在请求参数中没找到ST票据也没在Session中找到用户信息,返回302重定向,重定向的url上会带上请求的服务,如:http://localhost:8080/loginPage?service=http%3A%2F%2Flocalhost%3A8080%2Fhome,其中service后面即为请求的服务信息,后续各个步骤都会涉及到该服务,最终返回给用户的信息也是该服务所请求的内容;
- 步骤3、302重定向到CAS服务端登录服务;
- 步骤4、CAS服务端检查Cookie中的TGC,不存在或