基于CAS的单点登录SSO[2]: 改造cas-overlays-template支持MySQL数据库
2017-08-28 22:48
477 查看
基于CAS的单点登录SSO[2]: 改造cas-overlays-template支持MySQL数据库
作者:家辉,日期:2017-08-16 CSDN博客: http://blog.csdn.net/gobitan 摘要:在本系列的第一篇基于CAS的单点登录SSO[1]: 搭建CAS单点登录demo中,搭建了单点登录的服务器端,但是它的用户名和密码是写死存放在数据库中的。显然,这样在大大多数情况下都是不行的,一般都存放在数据库中。本文将介绍如何让CAS支持MySQL存储用户名和密码。
第一步:开启CAS的数据库认证
在pom.xml中加入对jdbc的依赖,参考:https://apereo.github.io/cas/5.1.x/installation/Database-Authentication.html
参考:https://apereo.github.io/cas/5.1.x/installation/JDBC-Drivers.html
由于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”.
如下所示:
然后再加入如下依赖:
第三步:配置MySQL连接依赖
第四步:将默认的静态用户名和密码配置注释掉
在application.properties中cas.authn.accept.users设置为空:
第五步:创建SSO测试数据库
注意:这里仅仅是测试,包括密码都用的是明文,实际生产环境不可如此。
创建数据库及表的SQL脚本语句如下:
执行以上SQL创建好测试数据库。
第六步:配置数据库认证信息
在application.properties中增加mysql的配置,参考:https://apereo.github.io/cas/development/installation/Configuration-Properties.html#database-authentication
注意:这里数据库安装在本机且root密码为123456。
第七步:运行cas server并验证测试账号
访问https://cas.example.org:8443/cas/login,并输入数据库中的测试账户dennis或者test,密码都为123456。验证可以登录成功。
参考资料:
[1] https://apereo.github.io/cas/5.1.x/index.html
作者:家辉,日期:2017-08-16 CSDN博客: http://blog.csdn.net/gobitan 摘要:在本系列的第一篇基于CAS的单点登录SSO[1]: 搭建CAS单点登录demo中,搭建了单点登录的服务器端,但是它的用户名和密码是写死存放在数据库中的。显然,这样在大大多数情况下都是不行的,一般都存放在数据库中。本文将介绍如何让CAS支持MySQL存储用户名和密码。
第一步:开启CAS的数据库认证
在pom.xml中加入对jdbc的依赖,参考:https://apereo.github.io/cas/5.1.x/installation/Database-Authentication.html
<dependency> <groupId>org.apereo.cas</groupId> <artifactId>cas-server-support-jdbc</artifactId> <version>${cas.version}</version> </dependency>第二步:配置CAS数据库驱动
参考:https://apereo.github.io/cas/5.1.x/installation/JDBC-Drivers.html
由于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创建好测试数据库。
第六步:配置数据库认证信息
在application.properties中增加mysql的配置,参考:https://apereo.github.io/cas/development/installation/Configuration-Properties.html#database-authentication
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] https://apereo.github.io/cas/5.1.x/index.html
相关文章推荐
- 基于CAS的单点登录SSO[3]: 改造cas-overlays-template支持Redis存储Ticket
- SSO单点登录在互联网电商应用中的解决方案(基于CAS的改造)
- 转)SSO单点登录在互联网电商应用中的解决方案(基于CAS的改造)
- SSO单点登录在互联网电商应用中的解决方案(基于CAS的改造)
- SSO单点登录在互联网电商应用中的解决方案(基于CAS的改造)
- SSO单点登录在互联网电商应用中的解决方案(基于CAS的改造)
- (转)基于CAS实现单点登录(SSO):cas client端的退出问题
- 基于CAS的单点登录SSO[1]: 搭建CAS单点登录demo
- SSO基于cas的登录
- SSO 基于CAS实现单点登录 实例解析(二)
- SSO 基于CAS实现单点登录 实例解析(二)
- 基于CAS的SSO单点登录
- 基于CAS实现单点登录(SSO):工作原理
- 基于CAS实现单点登录(SSO):工作原理
- 基于CAS的单点登录SSO[5]: 基于Springboot实现CAS客户端的前后端分离
- 基于CAS SHIRO LDAP 的SSO单点登录
- 基于CAS的SSO(单点登录)实例
- SSO 基于CAS实现单点登录 实例解析(二)
- IT忍者神龟之基于CAS实现单点登录(SSO)之配置CAS服务端的数据库查询认证机制(一)
- 基于CAS实现单点登录(SSO):自定义登录验证方法