版权声明:欢迎转载,请注明原文地址:http://blog.csdn.net/c1481118216 https://blog.csdn.net/c1481118216/article/details/80402622
目录
概述
之前用户名和密码的验证是通过配置文件写死的,实际开发过程中需要采用数据库查询认证机制,此处使用mysql
环境要求
- cas-4.0.0-server
- mysql-5.7
- tomcat-8
- jdk-8
创建数据库
# 创建测试数据库
CREATE DATABASE cas;
USE cas;
# 创建测试表
CREATE TABLE `cas_t_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_name` varchar(50) DEFAULT NULL,
`password` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
# 插入两条测试用户数据
INSERT INTO `cas_t_user` VALUES (1,'admin','96e79218965eb72c92a549dd5a330112');
INSERT INTO `cas_t_user` VALUES (2,'user','96e79218965eb72c92a549dd5a330112');
Tips
- 其中用户的密码为MD5之后的值
- “111111”的MD5值为:“96e79218965eb72c92a549dd5a330112”
配置cas-server
- 修改
%tomcat_home%/webapps/cas/WEB_INF/deployerConfigContext.xml
配置dataSource
// 添加以下bean 数据库用户名密码按自己的配置
<!-- 添加数据源 -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost/test" />
<property name="username" value="root" />
<property name="password" value="123456" />
</bean>
配置passwordEncoder
// 配置cas自带的MD5加密器
<!-- 配置passwordEncoder -->
<bean id="MD5PasswordEncoder"
class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder">
<constructor-arg index="0" value="MD5" />
</bean>
配置数据库验证bean
// 1. 找到 <bean id="primaryAuthenticationHandler" .../>
// 2. 注释掉这个bean配置
// 3. 接着添加数据库验证配置
<!-- 配置认证类 -->
<bean id="dbAuthHandler" class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
<!--dataSource指向上面配置的dataSource bean-->
<property name="dataSource" ref="dataSource" ></property>
<property name="sql" value="select password from sso_t_user where login_name=?" ></property>
<!--passwordEncoder 指向上面配置的 passwordEncoder bean-->
<property name="passwordEncoder" ref="MD5PasswordEncoder" ></property>
</bean>
修改authenticationManager
// 1. 找到以下bean
<bean id="authenticationManager" class="org.jasig.cas.authentication.PolicyBasedAuthenticationManager">
// 2. 将其中下面这个entry注释
<entry key-ref="primaryAuthenticationHandler" value-ref="primaryPrincipalResolver" />
// 3. 添加下面这个entry
<entry key-ref="dbAuthHandler" value-ref="primaryPrincipalResolver" />
修改的配置图
添加相关jar包
- 目录:apache-tomcat-8.0.52\webapps\cas\WEB-INF\lib
- 在上面目录下添加以下两个jar包
- cas-server-support-jdbc-4.0.0.jar
- mysql-connector-java-5.x.x-bin.jar
Tips:
- 第一个jar可以在
cas-server-4.0.0\modules
下拷贝 - 第二个jar可以在mysql安装目录下拷贝
启动测试
- 启动之后进入http://localhost:8080/cas/login
- 以用户: admin / 111111 登录成功 则配置成功完成