上一篇,已经介绍了简单的cas服务端搭建(登录账户是静态的)
本篇将介绍cas连接Mysql数据库进行登录验证
首先把application.properties文件中的cas.authn.accept.users=casuser::Mellon 注释
然后添加下列配置
# cas 连接数据库
cas.authn.jdbc.query[0].url=jdbc:mysql://localhost:3306/blog?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
cas.authn.jdbc.query[0].user=root
cas.authn.jdbc.query[0].password=你的数据库连接密码
cas.authn.jdbc.query[0].sql=对应的SQL语句 例如select * from user_info where userName = ?
cas.authn.jdbc.query[0].fieldPassword= 用来比对验证账号信息是否正确的字段 例如 password
cas.authn.jdbc.query[0].driverClass=com.mysql.jdbc.Driver
然后在项目的pom文件中添加下列依赖
<!--数据库认证相关 start-->
<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>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.driver.version}</version>
</dependency>
<!--数据库认证相关 end-->
此时,用户输入的密码还没有进行加密,一般数据库中存储的数据库密码都是加密过后的,此时会出现输入正确的密码,也不能登录的问题
这时需要在你的application.properties文件中添加下列配置
#使用默认方式进行密码加密
cas.authn.jdbc.query[0].passwordEncoder.type=DEFAULT
#自定义密码加密方式
#cas.authn.jdbc.query[0].passwordEncoder.type=com.example.CustomPasswordEncoder
cas.authn.jdbc.query[0].passwordEncoder.characterEncoding=UTF-8
#加密算法使用MD5进行加密
cas.authn.jdbc.query[0].passwordEncoder.encodingAlgorithm=MD5
这时,cas连接数据库登录验证就已经完成了