基于CAS的单点登录SSO[2]: 改造cas-overlays-template支持MySQL数据库

基于CAS的单点登录SSO[2]: 改造cas-overlays-template支持MySQL数据库
作者:家辉,日期:2017-08-16 CSDN博客: http://blog.csdn.net/gobitan
摘要:在本系列的第一篇基于CAS的单点登录SSO[1]: 搭建CAS单点登录demo中,搭建了单点登录的服务器端,但是它的用户名和密码是写死存放在数据库中的。显然,这样在大大多数情况下都是不行的,一般都存放在数据库中。本文将介绍如何让CAS支持MySQL存储用户名和密码。

第一步:开启CAS的数据库认证
<dependency>
<groupId>org.apereo.cas</groupId>
<artifactId>cas-server-support-jdbc</artifactId>
<version>${cas.version}</version>
</dependency>
第二步:配置CAS数据库驱动
由于maven官方库 https://mvnrepository.com/artifact/org.apereo.cas/cas-server-support-jdbc-drivers中没有5.1.3版本。如果第一步中没有改,这里需要改一下。需要将pom.xml中的cas.version属性由“5.1.3”改为“5.1.2”. 如下所示:
<cas.version>5.1.2</cas.version>
然后再加入如下依赖:
<dependency>
<groupId>org.apereo.cas</groupId>
<artifactId>cas-server-support-jdbc-drivers</artifactId>
<version>${cas.version}</version>
</dependency>

第三步:配置MySQL连接依赖
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>6.0.6</version>
</dependency>
第四步:将默认的静态用户名和密码配置注释掉
在application.properties中cas.authn.accept.users设置为空:
cas.authn.accept.users=

第五步:创建SSO测试数据库
注意:这里仅仅是测试,包括密码都用的是明文,实际生产环境不可如此。
创建数据库及表的SQL脚本语句如下:
create database sso default charset utf8 collate utf8_general_ci;
use sso;
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(45) DEFAULT NULL,
  `password` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`id`)
);

INSERT INTO `users` VALUES (1,'dennis','123456'),(2,'test','123456');
执行以上SQL创建好测试数据库。

第六步:配置数据库认证信息
cas.authn.jdbc.query[0].sql=SELECT * FROM USERS WHERE username=?
cas.authn.jdbc.query[0].url=jdbc:mysql://127.0.0.1:3306/sso?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
cas.authn.jdbc.query[0].dialect=org.hibernate.dialect.MySQLDialect
cas.authn.jdbc.query[0].user=root
cas.authn.jdbc.query[0].password=123456
cas.authn.jdbc.query[0].driverClass=com.mysql.jdbc.Driver
cas.authn.jdbc.query[0].fieldPassword=password
注意:这里数据库安装在本机且root密码为123456。

第七步:运行cas server并验证测试账号
sudo ./build.sh
访问 https:// cas.example.org :8443/cas/login,并输入数据库中的测试账户dennis或者test,密码都为123456。验证可以登录成功。

参考资料:



  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gobitan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值