一、編譯
1. 下載最新版的cas : https://codeload.github.com/apereo/cas/zip/v5.0.10
2. 解壓代碼(沒有安裝gradle環(huán)境的需要先安裝gradle環(huán)境)
? ? 進入? F:\安裝包\cas-5.0.10\cas-5.0.10\webapp\cas-server-webapp锈死, 執(zhí)行 gradle build
? ? 進入 F:\安裝包\cas-5.0.10\cas-5.0.10\support\cas-server-support-jdbc珍剑,執(zhí)行 gradle build
3. 生成證書
? 使用jdk的keytool生成證書掸宛,生產(chǎn)環(huán)境需要到證書服務(wù)中心申請,進入 C:/Program Files/Java/jdk1.8.0_131/bin (這個jdk的目錄招拙,根據(jù)自己安裝的jdk定) 唧瘾,密碼統(tǒng)一設(shè)置為 changeit
? ? # 生成
? ? keytool -genkey -alias sso_server -keypass changeit -keyalg RSA -keystore sso_server.keystore
? ? # 導(dǎo)出
? ? keytool -export -alias sso_server -keypass changeit -file sso_server.crt -keystore sso_server.keystore
? ? # 導(dǎo)入 (導(dǎo)入前先備份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/, 出現(xiàn)tomcat的頁面规哪,說明http配置成功
在瀏覽器輸入https://localhost:8443/cas/login求豫, 出現(xiàn)cas登錄頁面,說明cas部署成功
5. 配置數(shù)據(jù)源
新建數(shù)據(jù)庫 sso_test, 創(chuàng)建表?
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文件
新增數(shù)據(jù)源配置蝠嘉, 參考官方文檔?配置數(shù)據(jù)庫認證
新增認證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杯巨, 輸入數(shù)據(jù)庫配置的用戶名+密碼蚤告,登錄成功,說明數(shù)據(jù)庫配置成功服爷。