概要说明


前面的CAS SEVER中的登录帐号名是配置中写死的,实际情况中不太可能用这些方法。通常情况下,数据库的帐号名密码都是在数据库表中的,这样可以对登录帐号进行增删改的处理。 如果您对搭建固定帐号的CAS SERVER还不了解的话,可以查看上一章节《轻松搭建CAS 5.x系列(2)-搭建HTTPS的SSO SERVER端》 本文就是来解决这个问题的。

操作步骤


可以看到上一张中登录的画面中,还是有一条错误提示 

OK,看到错误了,那我们继续。

·1. 我们此次使用的是Mysql数据库,先到数据库中创建表和帐号数据

--创建数据库表空间
CREATE DATABASE test_cas DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
USE test_cas;
--创建帐号信息表
DROP TABLE IF EXISTS `cas_user_base`;
CREATE TABLE `cas_user_base` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`user_name` VARCHAR(45) DEFAULT NULL,
`user_psd` VARCHAR(45) DEFAULT NULL,
PRIMARY KEY (`id`)
);
--插入登录帐号数据
INSERT INTO `cas_user_base` VALUES (1,'admin',''),(2,'guest','');

·2. cas overlay添加数据库的JDBC插件,在pom.xml增加如下配置

<!-- Database Authentication Begin -->
<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>
<!-- Database Authentication End -->

·3. cas overlay增加数据库连接配置

创建目录 D:\casoverlay\cas-overlay-template\src\main\resources,

并新增文件application.properties,

具体文件内容如下

cas.authn.jdbc.query[].sql=SELECT * FROM cas_user_base WHERE user_name=?
cas.authn.jdbc.query[].url=jdbc:mysql://localhost:3306/test_cas?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&serverTimezone=UTC
cas.authn.jdbc.query[].dialect=org.hibernate.dialect.MySQLDialect
cas.authn.jdbc.query[].user=root
# 此次是数据库密码
cas.authn.jdbc.query[].password=
cas.authn.jdbc.query[].driverClass=com.mysql.jdbc.Driver
cas.authn.jdbc.query[].fieldPassword=user_psd

-4. cas overlay重新打包

打包命令如下

mvn package

第一次数据会比较慢,overlay需要下载jdbc的插件,mysql的驱动也会自动下载。

打包后,会生成目录 D:\casoverlay\cas-overlay-template\target\cas

-5. 检查下打包是否成功,检查两点:

  • 检查D:\casoverlay\cas-overlay-template\target\cas\WEB-INF\classes目录下application.properties是否就是我们刚才写的文件
  • 检查D:\casoverlay\cas-overlay-template\target\cas\WEB-INF\lib目录下是否有cas-server-support-jdbc-5.1.9.jar和mysql-connector-java-6.0.5.jar(如果版本号不一样也是属于正常的)

-6. OK,吧打包的cas目录复制到tomcat的webapps目录中

把D:\casoverlay\cas-overlay-template\target\cas下的cas目录复制到D:\casoverlay\apache-tomcat-8.5.31\webapps

-7. 启动tomcat

双击文件D:\casoverlay\apache-tomcat-8.5.31\bin\startup.bat

打开浏览器

输入https://cas.example.org:8443/cas/login

你会发现登录画面上中的最后一个登录错误提示也消失了

输入帐号名admin,密码是123456

看到登录成功画面,大功告成。

参考文档


  1. CAS中文文档站点#基于数据库的身份认证
  2. CAS中文文档站点#CAS配置属性说明

最后,大家想更多CAS了解的话,可以来CAS中文文档站点(http://www.cassso-china.cn)来瞅瞅

轻松搭建CAS 5.x系列(3)-连接数据库,使用数据库表中的帐号做登录的更多相关文章

  1. 轻松搭建CAS 5.x系列文章

    轻松搭建CAS 5.x系列(1)-使用cas overlay搭建SSO SERVER服务端 轻松搭建CAS 5.x系列(2)-搭建HTTPS的SSO SERVER端 轻松搭建CAS 5.x系列(3)- ...

  2. 轻松搭建CAS 5.x系列(9)-登录后显示通知信息

    概述说明 用户在账号名密码认证通过后,CAS可以跳转到登陆完成页面前,显示相关的通知页面. 搭建步骤 `1. 首先,您需要有个CAS Server端 如果您没有,可以按照我之前写的文章<轻松搭建 ...

  3. 轻松搭建CAS 5.x系列(8)-在CAS Server增加双因素认证(DUO版)

    概述说明 为了让系统更加安全,很多登录会加入双因素认证.何为双因素,如果把登陆作为开一扇门的话,那就是在原来的锁上再加一把锁,第二锁用新的钥匙,这样安全系数就更加高了. CAS是通过账号名和密码来认证 ...

  4. 轻松搭建CAS 5.x系列(7)-在CAS Server使用第三方帐号做认证

    概述说明 CAS除了使用自身数据库配置的帐号体系外,也可以使用第三方帐号来做认证. 比如实现如下类似的红色标注部分的登录效果: CAS自带了Facebook.GitHub.WordPress和CAS的 ...

  5. 轻松搭建CAS 5.x系列(6)-在CAS Server上增加OAuth2.0协议

    概述说明 CAS Server默认搭建出来,客户端程序只能按照CAS自身的协议接入.CAS的强大在于,有官方的插件,可以支持其他的协议.本章节就让CAS Server怎么增加OAuth2.0的登录协议 ...

  6. 轻松搭建CAS 5.x系列(5)-增加密码找回和密码修改功能

    概述说明 CAS内置了密码找回和密码修改的功能: 密码找回功能是,系统会吧密码重置的连接通过邮件或短信方式发送给用户,用户点击链接后就可以重置密码,cas还支持预留密码重置的问题,只有回答对了,才可以 ...

  7. 轻松搭建CAS 5.x系列(4)-Java客户端程序接入CAS单点登录,Hello World版

    概述说明 按照本系列的前3篇文章描述的步骤,我们已经搭建好cas sso server.那应用程序怎么接入到实现sso呢? (如果您还没有搭建cas server,可以到<轻松搭建CAS 5.x ...

  8. 轻松搭建CAS 5.x系列(2)-搭建HTTPS的SSO SERVER端

    概要说明 CAS要求,必须使用HTTPS的服务,否则就只等实现登录,无法实现单点登录.科普下HTTPS,网站有HTTP和HTTPS两种协议.HTTP是浏览器到网站之间是明文传输,比如你输入帐号名和密码 ...

  9. 轻松搭建CAS 5.x系列(1)-使用cas overlay搭建SSO SERVER服务端

    概要说明 cas的服务端搭建有两种常用的方式:   1. 基于源码的基础上构建出来的   2. 使用WAR overlay的方式来安装 官方推荐使用第二种,配置管理方便,以后升级也容易.本文就是使用第 ...

随机推荐

  1. 图的深度优先遍历(DFS)和广度优先遍历(BFS)算法分析

    1. 深度优先遍历 深度优先遍历(Depth First Search)的主要思想是: 1.首先以一个未被访问过的顶点作为起始顶点,沿当前顶点的边走到未访问过的顶点: 2.当没有未访问过的顶点时,则回 ...

  2. jvm方法栈

    调用栈 先入后出 栈是一个只有一个口的容器,先进入栈的会落到栈底,出栈的时候最后出.最后进入栈的,在栈顶,出栈时先出. 方法调用时,需要在内存中开辟一块存储空间做为线程栈空间 每个线程都由自己的栈 调 ...

  3. html文字两行后,就用省略号代替剩下的

    html文字两行后,就用省略号代替剩下的 一.总结 一句话总结: 实现原理很简单,将box的高度设置为行高的两倍,超出之后隐藏,这样就只有两行了,然后再用after属性绝对定位在第二行后面加几个点 . ...

  4. pre-fork 分叉 软分叉 硬分叉 前叉实现 pre-fork implementation

    https://mp.weixin.qq.com/s/wIDTs2J1ZkLkAEHqQnkYnw 什么是分叉?为何对区块链发展至关重要? Uselink公有链 Uselink公有链 2018-12- ...

  5. ? 这是个很好的问题。Go 当前的 GC 显然做了一些额外的工作,但它也跟其他的工作并行执行,所以在具有备用 CPU 的系统上,Go 正在作出合理的选择。请看 https://golang.org/issue/17969 结束语(Closing notes) 通过研究 Go 垃圾收集器,我能够理解 Go GC 当前结构的背景以及它如何克服它的弱点。Go发展得非常快。如果你对 Go感兴趣,最好继

    ? 这是个很好的问题.Go 当前的 GC 显然做了一些额外的工作,但它也跟其他的工作并行执行,所以在具有备用 CPU 的系统上,Go 正在作出合理的选择.请看 https://golang.org/i ...

  6. 科普贴:什么是上证50ETF期权?如何交易?

    这两天很多上证50ETF期权即将开通的新闻,有几个朋友表示,看了很多新闻,同样还是云里雾里,没搞清楚究竟是个什么东东?今天科普一下,部分内容摘自网络. 1.什么是ETF?ETF的英文全称是:Excha ...

  7. nginx虚拟机无法访问解决

    .重要:修改配置文件使用虚拟机,否则怎么配置都不生效,添加如下用户 [root@host---- html]# ll /etc/nginx/nginx.conf -rw-r--r-- root roo ...

  8. Spring Aop(十四)——Aop自动创建代理对象的原理

    转发地址:https://www.iteye.com/blog/elim-2398725 Aop自动创建代理对象的原理 我们在使用Spring Aop时,通常Spring会自动为我们创建目标bean的 ...

  9. 读rfc HTTP 协议

    这是IETF ( 国际互联网工程任务组(The Internet Engineering Task Force,简称 IETF))制定的协议之一. 互联网工程任务组,成立于1985年底,是全球互联网最 ...

  10. 【DSP开发】CCS数据格式 load

    CCS支持的.dat文件详解(转载于hellodsp) CCS支持的.dat文件的格式为: 定数 数据格式 起始地址 页类型 数据块大小 1651 其后是文件内容,每行表示一个数据. 定数固定为&qu ...