CAS单点登录(4):cas-4.0.0-server 配置mysql数据库查询认证

版权声明:欢迎转载,请注明原文地址: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包
    1. cas-server-support-jdbc-4.0.0.jar
    2. mysql-connector-java-5.x.x-bin.jar

Tips:

  • 第一个jar可以在cas-server-4.0.0\modules下拷贝
  • 第二个jar可以在mysql安装目录下拷贝

启动测试

猜你喜欢

转载自blog.csdn.net/c1481118216/article/details/80402622