史上最详细的 Apereo CAS 5.3开发教程:二、Apereo CAS 5.3 Server环境搭建,登录名,密码从数据库中获取

版权声明:本文为博主原创文章,转载请注明出处。作者:杨雄进 https://blog.csdn.net/makyan/article/details/88878667

Apereo CAS 5.3 项目源码地址:https://github.com/apereo
CAS 系列详解:https://blog.csdn.net/makyan/column/info/36060
上一节内容:https://blog.csdn.net/makyan/article/details/88878473
本节继上一节内容讲解

1.3. 配置原项目,将登录名/密码从数据库中获取

在上一节中,虽然我们可以修改登录的用户名、密码,但是,用户名、密码还是写在配置文件中的,
我们也可以让登录名密码从数据库中获取。

1.引入依赖

在pom.xml中profile的id = default的dependencies中添加依赖:

<!--数据库认证相关 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>

<!-- 自己需要的jar包,我这里用到了查库验证身份,所以引入了mysql -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>6.0.5</version>
</dependency>

2. 在application.properties中配置Jdbc连接属性

#用的mysql-connector-java 是6.0.5,所以很多配置要改:
#1. 数据库驱动com.mysql.jdbc.Driver'已经被弃用了、应当使用新的驱动com.mysql.cj.jdbc.Driver'
#2. 用的mysql-connector-java 是6.0.5,要配上时区参数,不然会因为时区问题报错,这里用了CTT中国台湾时区避免产生8小时时差
#3. 新版的mysql会询问是否SSL连接,返回一个Boolean值,我们需要手动指定true或者false

cas.authn.jdbc.query[0].url=jdbc:mysql://www.futurecloud.com:3306/futurecloud-uac?serverTimezone=CTT&useSSL=false&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true
cas.authn.jdbc.query[0].user=root
cas.authn.jdbc.query[0].password=root
cas.authn.jdbc.query[0].sql=select * from fc_uac_user where username=?
cas.authn.jdbc.query[0].fieldPassword=password
cas.authn.jdbc.query[0].driverClass=com.mysql.cj.jdbc.Driver

将配置文件application.properties中的用户名密码注释掉;

3. 在mysql中创建数据库futurecloud-uac、表,插入数据

CREATE TABLE `fc_uac_user` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) DEFAULT NULL,
  `password` varchar(255) DEFAULT '',
  `email` varchar(30) DEFAULT NULL,
  `telephone` varchar(11) DEFAULT NULL,
  UNIQUE KEY `id` (`id`) USING HASH
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
INSERT INTO `fc_uac_user` VALUES (1, 'yangxj', 'yangxj', NULL, NULL);

4. 测试,输入yangxj/yangxj登陆成功

猜你喜欢

转载自blog.csdn.net/makyan/article/details/88878667