天天看點

CAS服務端-配置資料庫查詢認證機制

原文位址: 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

,

5

PRIMARY

KEY

(`Id`)

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

>

5

</

bean

>

同時增加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

=

""

/>

7

</

bean

>

8

<

bean

id

=

"MD5PasswordEncoder"

9

class

=

"org.jasig.cas.authentication.handler.DefaultPasswordEncoder"

>

10

<

constructor-arg

index

=

"0"

value

=

"MD5"

/>

11

</

bean

>

修改後的配置資訊如下:

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 ,需要和資料庫中查詢到的密碼驗證比對後才能登陸系統。

繼續閱讀