概要說明
前面的CAS SEVER中的登錄帳號名是配置中寫死的,實際情況中不太可能用這些方法。通常情況下,數據庫的帳號名密碼都是在數據庫表中的,這樣可以對登錄帳號進行增刪改的處理。 如果您對搭建固定帳號的CAS SERVER還不了解的話,可以查看上一章節《輕松搭建CAS 5.x系列(2)-搭建HTTPS的SSO SERVER端》 本文就是來解決這個問題的。
操作步驟
可以看到上一張中登錄的畫面中,還是有一條錯誤提示
OK,看到錯誤了,那我們繼續。
·1. 我們此次使用的是Mysql數據庫,先到數據庫中創建表和帳號數據
--創建數據庫表空間 CREATE DATABASE test_cas DEFAULT CHARSET utf8 COLLATE utf8_general_ci; USE test_cas; --創建帳號信息表 DROP TABLE IF EXISTS `cas_user_base`; CREATE TABLE `cas_user_base` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `user_name` VARCHAR(45) DEFAULT NULL, `user_psd` VARCHAR(45) DEFAULT NULL, PRIMARY KEY (`id`) ); --插入登錄帳號數據 INSERT INTO `cas_user_base` VALUES (1,'admin','123456'),(2,'guest','123456');
·2. cas overlay添加數據庫的JDBC插件,在pom.xml增加如下配置
<!-- Database Authentication Begin --> <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> <!-- Database Authentication End -->
·3. cas overlay增加數據庫連接配置
創建目錄 D:\casoverlay\cas-overlay-template\src\main\resources,
並新增文件application.properties,
具體文件內容如下
cas.authn.jdbc.query[0].sql=SELECT * FROM cas_user_base WHERE user_name=? cas.authn.jdbc.query[0].url=jdbc:mysql://localhost:3306/test_cas?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&serverTimezone=UTC cas.authn.jdbc.query[0].dialect=org.hibernate.dialect.MySQLDialect cas.authn.jdbc.query[0].user=root # 此次是數據庫密碼 cas.authn.jdbc.query[0].password= cas.authn.jdbc.query[0].driverClass=com.mysql.jdbc.Driver cas.authn.jdbc.query[0].fieldPassword=user_psd
-4. cas overlay重新打包
打包命令如下
mvn package
第一次數據會比較慢,overlay需要下載jdbc的插件,mysql的驅動也會自動下載。
打包后,會生成目錄 D:\casoverlay\cas-overlay-template\target\cas
-5. 檢查下打包是否成功,檢查兩點:
- 檢查D:\casoverlay\cas-overlay-template\target\cas\WEB-INF\classes目錄下application.properties是否就是我們剛才寫的文件
- 檢查D:\casoverlay\cas-overlay-template\target\cas\WEB-INF\lib目錄下是否有cas-server-support-jdbc-5.1.9.jar和mysql-connector-java-6.0.5.jar(如果版本號不一樣也是屬於正常的)
-6. OK,吧打包的cas目錄復制到tomcat的webapps目錄中
把D:\casoverlay\cas-overlay-template\target\cas下的cas目錄復制到D:\casoverlay\apache-tomcat-8.5.31\webapps
-7. 啟動tomcat
雙擊文件D:\casoverlay\apache-tomcat-8.5.31\bin\startup.bat
打開瀏覽器
輸入https://cas.example.org:8443/cas/login
你會發現登錄畫面上中的最后一個登錄錯誤提示也消失了
輸入帳號名admin,密碼是123456
看到登錄成功畫面,大功告成。
參考文檔