一、编译
1. 下载最新版的cas : https://codeload.github.com/apereo/cas/zip/v5.0.10
2. 解压代码(没有安装gradle环境的需要先安装gradle环境)
进入 F:\安装包\cas-5.0.10\cas-5.0.10\webapp\cas-server-webapp, 执行 gradle build
进入 F:\安装包\cas-5.0.10\cas-5.0.10\support\cas-server-support-jdbc,执行 gradle build
3. 生成证书
使用jdk的keytool生成证书,生产环境需要到证书服务中心申请,进入 C:/Program Files/Java/jdk1.8.0_131/bin (这个jdk的目录,根据自己安装的jdk定) ,密码统一设置为 changeit
# 生成
keytool -genkey -alias sso_server -keypass changeit -keyalg RSA -keystore sso_server.keystore
# 导出
keytool -export -alias sso_server -keypass changeit -file sso_server.crt -keystore sso_server.keystore
# 导入 (导入前先备份cacerts文件,以防万一)
keytool -import -alias sso_server -file sso_server.crt -keypass changeit -keystore "C:/Program Files/Java/jdk1.8.0_131/jre/lib/cacerts"
4. 部署到tomcat
修改tomcat目录下conf/server.xml ,新增https配置,keystoreFile为上面生成的证书
将上面编译成功的 cas-server-webapp-5.0.10.war 改名为cas.war, 放到tomcat的webapps目录下,启动tomcat
在浏览器输入https://localhost:8443/, 出现tomcat的页面,说明http配置成功
在浏览器输入https://localhost:8443/cas/login, 出现cas登录页面,说明cas部署成功
5. 配置数据源
新建数据库 sso_test, 创建表
CREATE TABLE `users` (
`id` int(11) NOT NULL ,
`username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
PRIMARY KEY (`id`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
ROW_FORMAT=DYNAMIC
进入tomcat目录 webapps/cas/WEB-INF, 修改 deployerConfigContext.xml文件
新增数据源配置, 参考官方文档 配置数据库认证
新增认证handler定义 :
cas.properties文件 新增配置
# 用于验证用户名和密码
cas.jdbc.authn.query.sql=select password from users where username=?
# == Basic database connection pool configuration ==
database.driverClass=com.mysql.jdbc.Driver
database.url=jdbc:mysql://172.16.8.147:3306/sso_test?useUnicode=true&characterEncoding=UTF-8
database.user=dba
database.password=123456
database.pool.minSize=6
database.pool.maxSize=18
# Maximum amount of time to wait in ms for a connection to become
# available when the pool is exhausted
database.pool.maxWait=10000
# Amount of time in seconds after which idle connections
# in excess of minimum size are pruned.
database.pool.maxIdleTime=120
# Number of connections to obtain on pool exhaustion condition.
# The maximum pool size is always respected when acquiring
# new connections.
database.pool.acquireIncrement=6
# == Connection testing settings ==
# Period in s at which a health query will be issued on idle
# connections to determine connection liveliness.
database.pool.idleConnectionTestPeriod=30
# Query executed periodically to test health
database.pool.connectionHealthQuery=select 1
# == Database recovery settings ==
# Number of times to retry acquiring a _new_ connection
# when an error is encountered during acquisition.
database.pool.acquireRetryAttempts=5
# Amount of time in ms to wait between successive aquire retry attempts.
database.pool.acquireRetryDelay=2000
拷贝 cas-server-support-jdbc-5.0.10.jar (上面用gradle build生成的文件)到webapps/WEB-INF/lib目录
拷贝 mysql-connector-java-5.1.41.jar(这个需要自己下载) 到webapps/WEB-INF/lib目录
重启tomcat,打开 https://localhost:8443/cas/login, 输入数据库配置的用户名+密码,登录成功,说明数据库配置成功。