原文位址: http://www.micmiu.com/enterprise-app/sso/cas-server-auth-db/
目錄:
[一]、概述
繼前面介紹過 SSO之CAS單點登入執行個體示範(http://www.micmiu.com/enterprise-app/sso/sso-cas-sample/),示範過程中服務端認證機制采用的是測試環境的預設配置,本文将重點示範如何通過查詢資料庫,對使用者名和密碼進行相關的認證配置。
[二]、示範環境
- 基本環境同: SSO之CAS單點登入執行個體示範
- Mysql:5.1.51
[三]、示範步驟
1.建立示範的使用者資料
在mysql資料庫中建立Database,以 test 為例,然後再建立使用者表:sso_t_user,詳細SQL如下:
1 | CREATE TABLE `sso_t_user` ( |
2 | `Id` int (11) NOT NULL AUTO_INCREMENT, |
3 | `login_name` varchar (50) DEFAULT NULL , |
4 | ` password ` varchar (255) DEFAULT NULL , |
6 | ) ENGINE=MyISAM DEFAULT CHARSET=utf8; |
向表sso_t_user 中插入如下資料:
1 | INSERT INTO `sso_t_user` VALUES (1, 'admin' , '96e79218965eb72c92a549dd5a330112' ); |
2 | INSERT INTO `sso_t_user` VALUES (2, 'user' , '96e79218965eb72c92a549dd5a330112' ); |
Tips:
- 密碼以MD5 加密後存放資料庫中為例
- “111111”的MD5值為:“96e79218965eb72c92a549dd5a330112”
2.修改cas服務端配置
在%tomcat_cas%/webapps/cas/WEB_INF/deployerConfigContext.xml 找到如下資訊:
1 | < bean class = "org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" /> |
修改成如下:
1 | < bean class = "org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler" > |
2 | < property name = "dataSource" ref = "dataSource" ></ property > |
3 | < property name = "sql" value = "select password from sso_t_user where login_name=?" ></ property > |
4 | < property name = "passwordEncoder" ref = "MD5PasswordEncoder" ></ property > |
同時增加datasource和加密處理兩個bean的定義:
1 | < bean id = "dataSource" |
2 | class = "org.springframework.jdbc.datasource.DriverManagerDataSource" > |
3 | < property name = "driverClassName" value = "com.mysql.jdbc.Driver" /> |
4 | < property name = "url" value = "jdbc:mysql://localhost/test" /> |
5 | < property name = "username" value = "root" /> |
6 | < property name = "password" value = "" /> |
8 | < bean id = "MD5PasswordEncoder" |
9 | class = "org.jasig.cas.authentication.handler.DefaultPasswordEncoder" > |
10 | < constructor-arg index = "0" value = "MD5" /> |
修改後的配置資訊如下:
CAS服務端-配置資料庫查詢認證機制 3.添加相關的jar包
需要在web項目的lib下添加兩個包:cas-server-support-jdbc-x.x.x.jar 和 mysql-connector-java-x.x.x-bin.jar(具體版本号根據情況而定)
4.測試認證過程
分别啟動已經配置好的三個tomcat分别為:tomcat-cas、tomcat-app1、tomcat-app2.
此時在cas-server認證界面輸入:admin/111111 ,需要和資料庫中查詢到的密碼驗證比對後才能登陸系統。