cas mysql_使用CAS连接Mysql数据库
CAS安装好默认使用的是静态用户和密码,但实际使用中,我们可能连接LDAP、数据库等其他情况。接下来,我们看一下如何使用CAS连接Mysql数据库。
创建数据库1
2
3
4
5
6
7
8DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
`username` varchar(50) NOT NULL,
`password` varchar(50) NOT NULL,
PRIMARY KEY (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into users values ('admin','123456');
配置
使用数据库需要cas-server-support-jdbc的支持,在此依赖中的目录cas-4.2.1/cas-server-support-jdbc/src/main/java/org/jasig/cas/adaptors/jdbc中有多类组件完成配置。 以QueryDatabaseAuthenticationHandler为例,可参考官方文档
注意使用QueryDatabaseAuthenticationHandler作为数据验证方式需屏蔽一下类QueryAndEncodeDatabaseAuthenticationHandler,如下
QueryAndEncodeDatabaseAuthenticationHandler.java注释内容如下;
1
2
3
4
5......
//import org.springframework.stereotype.Component;
......
//@Component("queryAndEncodeDatabaseAuthenticationHandler")
......
修改完成后进入目录cas-4.2.1/cas-server-support-jdbc,重新执行gradle clean build,生成jar包cas-4.2.1/cas-server-support-jdbc/build/libs/cas-server-support-jdbc-4.2.1.jar, 并将此jar包放入webapps/cas/WEB-INF/lib中,由于本例使用mysql,所以需将mysql驱动包mysql-connector-java-5.1.25.jar也放到lib目录中。
接下来在文件webapps/cas/WEB-INF/deployerConfigContext.xml中增加以下配置,并注释掉一行
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class="com.mchange.v2.c3p0.ComboPooledDataSource"
p:driverClass="${database.driverClass}"
p:jdbcUrl="${database.url}"
p:user="${database.user}"
p:password="${database.password}"
p:initialPoolSize="${database.pool.minSize}"
p:minPoolSize="${database.pool.minSize}"
p:maxPoolSize="${database.pool.maxSize}"
p:maxIdleTimeExcessConnections="${database.pool.maxIdleTime}"
p:checkoutTimeout="${database.pool.maxWait}"
p:acquireIncrement="${database.pool.acquireIncrement}"
p:acquireRetryAttempts="${database.pool.acquireRetryAttempts}"
p:acquireRetryDelay="${database.pool.acquireRetryDelay}"
p:idleConnectionTestPeriod="${database.pool.idleConnectionTestPeriod}"
p:preferredTestQuery="${database.pool.connectionHealthQuery}" />
接着配置/webapps/cas/WEB-INF/cas.properties,添加以下内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42# add by hode begin
# == Basic database connection pool configuration ==
database.driverClass=com.mysql.jdbc.Driver
database.url=jdbc:mysql://192.167.48.1:3306/hode
database.user=root
database.password=kroot
database.pool.minSize=6
database.pool.maxSize=18
# Maximum amount of time to wait in ms for a connection to become
# available when the pool is exhausted
database.pool.maxWait=10000
# Amount of time in seconds after which idle connections
# in excess of minimum size are pruned.
database.pool.maxIdleTime=120
# Number of connections to obtain on pool exhaustion condition.
# The maximum pool size is always respected when acquiring
# new connections.
database.pool.acquireIncrement=6
# == Connection testing settings ==
# Period in s at which a health query will be issued on idle
# connections to determine connection liveliness.
database.pool.idleConnectionTestPeriod=30
# Query executed periodically to test health
database.pool.connectionHealthQuery=select 1
# == Database recovery settings ==
# Number of times to retry acquiring a _new_ connection
# when an error is encountered during acquisition.
database.pool.acquireRetryAttempts=5
# Amount of time in ms to wait between successive aquire retry attempts.
database.pool.acquireRetryDelay=2000
# add by hode end
同时需取消注释项cas.jdbc.authn.query.sql,并添加sql语句
1cas.jdbc.authn.query.sql=select password from users where username=?
配置完成。重启tomcat即可用hode/123456进行登录,完成验证。
当然文明密码保存到数据库中是相当不安全的,所以需要保存加密后的密码,配置如下,此时md5后的结果与数据库的密码进行比较
1
2
3
4
5
6deployerConfigContext.xml增加一行
cas.properties增加两行
cas.authn.password.encoding.char=UTF-8
cas.authn.password.encoding.alg=MD5
cas mysql_使用CAS连接Mysql数据库相关推荐
- sqlalchemy 使用mysql_使用SQLALchemy连接MySql数据库并进行操作
"导语:这期主要学一下利用SQLALchemy连接MySql数据库以及对数据库的增删改查的操作,可能代码部分很多还不能理解,我觉得像一些固定写法先用着(比如引入的类等),再慢慢体会缘由&qu ...
- python数据库连接mysql_使用Python连接MySQL数据库
本篇文章使用python中的pymysql库连接MySQL数据库,并完成建表,数据写入和查询的过程.为了保证内容的完整性,我们将内容分为两个 阶段,***阶段简单介绍数据的爬取过程.看过之前爬虫文章的 ...
- 使用jdbc驱动连接mysql_使用jdbc连接mysql数据库
1.提供mysql的jdbc驱动(我的博客文件里提供了驱动jar包) 2.使用IDEA工具,把jar包添加到项目里(具体步骤如下) 1)打开模块设置 2)选择libraries功能,点击+号,选择ja ...
- spring无法连接mysql_初学Spring——连接MySQL数据库的问题和解决
零:前言 初学Spring + Angular才不到一周时间,刚打开第一个Spring的示例项目,在运行时就出现了错误. 代码如下: *************************** APPLI ...
- cpp mysql_使用MYSQLCPPCONN连接MYSQL数据库与读写BLOB字段
起初也是用C语言接口, 但不知为什么在VS2010下使用时调用mysql_thread_init()函数总是失败(动态链接) 其他函数也用不了, 用了一阵子的ODBC但不会操作BLOB字段 遂转到MY ...
- spring下连接mysql_使用Spring连接mysql数据库
本例是使用spring定义数据源Bean,使用c3p0数据源实现连接 spring bean 文件 my_connection.xml xmlns="http://www.springfra ...
- python用django连接mysql_三分钟了解Django如何连接Mysql数据库
处理用户注册请求.Django连接MysqL数据库相关配置.数据库迁移命令: my_Dproject/app01/views.py 在views函数文件中添加register函数,来处理用户注册 ...
- pydev集成mysql_【Python】Windows平台下Python、Pydev连接Mysql数据库
Mysql数据库是跨平台的,不是说Python一定就要连接Mongodb. Python连接Mysql数据库是非常easy的. 首先,你要配置好Python的开发环境,详见<[Python]Wi ...
- java写一个窗体并连接MySQL_大神帮忙写一个简单地java页面,连接MySQL数据库之后能够显示数据库上的数据...
展开全部 用jdbc 连接mysql数据库就行了,网上搜下一大把. --记得在classpath下加入mysql 的jdbc驱动包. /** * @author :来e68a84e8a2ad32313 ...
最新文章
- 计算机控制里ddc什么缩略语,空调自动化术语和缩略语.doc
- GOF23种设计模式(Design Pattern)总结
- ttlink无线打印服务器固件,TTLINK TT-180U1打印机服务器 TCP/IP添加打印机的教程
- 25个出众的Web表单范例
- 最优化导论(part2)--对偶问题的性质
- 深入浅出深度学习(二)分类器
- 十个网志流量统计工具一览
- java多线程详解(8)-volatile,Atomic比较
- SecureCRT 安装与配置大全
- [CMake] message 打印变量值
- JavaScript丧尸游戏开发教程
- 《Java多线程编程核心技术》学习笔记(1)
- 毛毛虫 树形DP
- 最新台式计算机CPU,三月台式电脑CPU性能排行榜, 2019年3月最新版CPU天梯图
- [生活日记]参与unity非游戏行业开发者大会小结
- CSS3制作圆角图片和椭圆形图片
- 离散数学及其应用复盘 | 第3版第4章——谓词逻辑思维导图梳理(复习专用)
- 致远OA管理员密码的重置
- python火车抢票_春运火车票太难抢?不如试试这个python开源工具吧
- 用outook发邮件能撤回吗?邮件怎么撤回技巧
热门文章
- 好记性不如烂笔头(2)
- 使用RestTemplate:报错Could not extract response: no suitable HttpMessageConverter found for response typ
- 华为国产系统Android,安卓系统已成昨日黄花!这个国产系统要挑战iOS!
- python买苹果增强版
- python使用turtle库绘制一个100长度的十字架_使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例...
- 在b站上跟着沐神学习深度学习
- 简述JS中 appy 和 call 的详细用法
- 代码注释生成文档之Doxygen 附说明+下载连接
- Python 文件目录操作
- 百度深度学习框架paddlepaddle实战三——自家车牌识别