以前的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、运行测试加密