CAS单点登录脚手架

首先可以先下载一个脚手架项目,它是基于maven的overlays的无入侵的代码改造。下载地址:cas-server-overlays-templete

脚手架

下载完成之后,导入开发工具后,目录截图如下:

从上面截图可以看出,overlays目录下面是依赖的CAS4.0版本的web项目依赖。当需要重写代码或者配置信息时,直接在src下面自定义代码和配置就可以了(maven在打包时,会自动覆盖overlays里面的内容,但是要保证文件的目录和名称一致)。

项目配置

overlays里面的配置文件和登录流程相关的页面,都放在WEB-INF下。其中配置文件除了WEB-INF下,还有spring-configuration、classes目录下面的配置文件。view目录下存放的是登录相关的页面。

WEB-INF

cas-servlet.xml:Spring MVC的启动类配置,登录/登出流程配置信息等。

deployerConfigContext.xml:CAS的认证管理相关的配置,都在这个文件里。

login-webflow.xml/logout-webflow.xml:Spring Web Flow的流程配置文件,*-webflow.xml定义了登录/登出流程的配置信息。

restlet-servlet.xml:CAS的Rest风格的对外接口服务,后续可以用于非浏览器视图的登录,如手机APP端的登录。

spring-configuration

applicationContext.xml:这个配置是CAS的核心类配置。

argumentExtractorsConfiguration.xml:主要配置的是CAS的参数提取。比如从Client端重定向到CAS服务器的URL地址中的service参数,为什么CAS认识,service起什么作用,换一参数名,是否可以?就是这里配置的类来处理的。但是这个你也不需要改动,cas默认是支持cas1.0,cas2.0及saml协议的。

propertyFileConfigurer.xml:加载cas.properties文件。

securityContext.xml:关于安全上下文配置,比如登出,认证等。

ticketExpirationPolicies.xml:Ticket的过期策略配置,包括ST、TGT。

ticketGrantingTicketCookieGenerator.xml:关于cookie的生成。

ticketRegistry.xml:ticket的存储。

uniqueIdGenerators.xml:ticket的Id生成器。

classes

default_views.properties:登录流程页面解析配置,如要新增登录页面,则可以在里面配置相关信息。

protocol_views.properties:协议相关视图解析,用来生成协议的格式数据。

saml_views.properties:SAML视图解析,用来生成SAML格式数据。