CAS單點登入(4):cas-4.0.0-server 配置mysql資料庫查詢認證
阿新 • • 發佈:2018-12-22
目錄
概述
之前使用者名稱和密碼的驗證是通過配置檔案寫死的,實際開發過程中需要採用資料庫查詢認證機制,此處使用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 登入成功 則配置成功完成