- 下载cas maven overlay template代码,https://github.com/apereo/cas-overlay-template
- 目前最新版是6.x,但是需要java11以上,我们还是使用java8,所以选择了5.3
- 打开工程,如果要让cas直接连接数据库做用户验证,在POM里添加依赖:
<dependency>
<groupId>org.apereo.cas</groupId>
<artifactId>cas-server-support-jdbc</artifactId>
<version>${cas.version}</version>
</dependency>
<dependency>
<groupId>org.apereo.cas</groupId>
<artifactId>cas-server-support-jdbc-drivers</artifactId>
<version>${cas.version}</version>
</dependency>
如果连接oracle数据库,需要额外添加oracle驱动
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc11-production</artifactId>
<version>21.3.0.0</version>
<type>pom</type>
</dependency>
- 配置文件默认位置/etc/cas/config/cas.properties,添加数据库配置:
cas.authn.jdbc.query[0].user=root
cas.authn.jdbc.query[0].password=123456
cas.authn.jdbc.query[0].driverClass=oracle.jdbc.driver.OracleDriver
cas.authn.jdbc.query[0].url=jdbc:oracle:thin:@192.168.1.2:1521:orcl
cas.authn.jdbc.query[0].dialect=org.hibernate.dialect.Oracle11gDialect
cas.authn.jdbc.query[0].sql=SELECT USERNAME,PASSWORD FROM USERS WHERE USERNAME=?
cas.authn.jdbc.query[0].fieldPassword=PASSWORD
- 禁用默认用户
cas.authn.accept.users=
- 数据库密码字段如果是加密的,需要cas配置加密信息,以BCRYPT为例:
cas.authn.jdbc.query[0].passwordEncoder.type=BCRYPT
cas.authn.jdbc.query[0].passwordEncoder.characterEncoding=UTF-8
cas.authn.jdbc.query[0].passwordEncoder.strength=10
- 三方系统对接CAS SSO时,需要在cas中配置哪些服务可以访问cas,可以通过添加下面的依赖,然后通过配置外部的json文件来配置service。
<dependency>
<groupId>org.apereo.cas</groupId>
<artifactId>cas-server-support-json-service-registry</artifactId>
<version>${cas.version}</version>
</dependency>
配置文件里添加service文件路径
cas.serviceRegistry.json.location=file:/etc/cas/services
在/etc/cas/services里新建gateway-1.json文件,文件名有要求,必须是{name}-{id}.json, serviceId是系统的url,支持通配符。例如:
{
"@class" : "org.jasig.cas.services.RegexRegisteredService",
"serviceId" : "^http://.*",
"name" : "gateway",
"theme" : "gateway",
"id" : 1,
"description" : "Gateway",
"evaluationOrder" : 10,
"accessStrategy" : {
"@class" : "org.jasig.cas.services.DefaultRegisteredServiceAccessStrategy",
"enabled" : true,
"ssoEnabled" : true
}
}
完整属性参考https://apereo.github.io/cas/5.3.x/installation/Service-Management.html
- 执行build.sh package,然后将cas.war放到tomcat里启动。
至此,一个基本功能的cas server搭建完毕,如果用到生产环境,要配置https,高可用等。