CAS(Central Authentication Service) 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。
从结构上看,CAS 包含两个部分: CAS Server 和 CAS Client。CAS Server 需要独立部署,主要负责对用户的认证工作;CAS Client 负责处理对客户端受保护资源的访问请求,需要登录时,重定向到 CAS Server。
因为4.2现在还不是很稳定,配置4.0的时候,我修改了一部分源码,所以就以4.1.6为例子记录一下CAS Server的配置过程。4.1与4.0的区别是4.1支持用户salt,tgc(TGT cookie加密),log4j2,saml。4.2之前使用的是maven build,bean使用xml配置,而4.2使用的是gradle,大部分配置使用spring自动注入。配置的时候最好是去官网下载源码包,导入后配置。
1.使用JDBC数据库做用户验证
1.1 在cas-server-webapp的pom.xml里面加入jdbc的支持。
<dependency>
<groupId>org.jasig.cas</groupId>
<artifactId>cas-server-support-jdbc</artifactId>
<version>4.1.6</version>
</dependency>
1.2 数据库连接池,4.2自带了c3p0的连接池,根据情况使用。
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.18</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
1.3 在cas.properties中写入数据库连接配置。
在applicationContext.xml 添加一个数据源bean
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<property name="driverClassName" value="${cas.database.driverClass}"/>
<property name="url" value="${cas.database.url}"/>
<property name=<