以前的Cas服務器一直使用靜態配置的帳號密碼進行身份認證,如今要讓Cas服務器經過MySQL數據庫中的用戶信息進行身份認證。java
1、添加數據庫訪問依賴mysql
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->sql
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.12</version>
</dependency>
<!--jdbc認證須要添加cas的依賴包,其餘數據源請按類型更換-->
<dependency>
<groupId>org.apereo.cas</groupId>
<artifactId>cas-server-support-jdbc</artifactId>
<version>${cas.version}</version>
</dependency>
2、建立數據庫表並添加數據數據庫
注:數據採用最簡、密碼明文,要進行加密的話也很簡單,文章中不作說明。服務器
3、配置Cas服務器進行數據查詢測試
# 查詢帳號密碼sql,必須包含密碼字段
cas.authn.jdbc.query[0].sql=select * from user where userName=?
cas.authn.jdbc.query[0].fieldPassword=password
#cas.authn.jdbc.query[0].fieldExpired=expired 無過時
#cas.authn.jdbc.query[0].fieldDisabled=disabled 無禁用
cas.authn.jdbc.query[0].dialect=org.hibernate.dialect.MySQLDialect
cas.authn.jdbc.query[0].driverClass=com.mysql.jdbc.Driver
cas.authn.jdbc.query[0].url=jdbc:mysql://127.0.0.1:3306/shriodb?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
cas.authn.jdbc.query[0].user=root
cas.authn.jdbc.query[0].password=123456
#加密策略,默認NONE不加密
cas.authn.jdbc.query[0].passwordEncoder.type=NONE
4、運行測試加密