目录:
[一]、概述
继前面介绍过 SSO之CAS单点登录实例演示(http://www.micmiu.com/enterprise-app/sso/sso-cas-sample/),演示过程中服务端认证机制采用的是测试环境的默认配置,本文将重点演示如何通过查询数据库,对用户名和密码进行相关的认证配置。
[二]、演示环境
[三]、演示步骤
1.创建演示的用户数据
在mysql数据库中创建Database,以 test 为例,然后再创建用户表:sso_t_user,详细SQL如下:
|
CREATE
TABLE
`
sso_t_user
`
(
`
Id
`
int
(
11
)
NOT
NULL
AUTO_INCREMENT
,
`
login_name
`
varchar
(
50
)
DEFAULT
NULL
,
`
password
`
varchar
(
255
)
DEFAULT
NULL
,
PRIMARY
KEY
(
`
Id
`
)
)
ENGINE
=
MyISAM
DEFAULT
CHARSET
=
utf8
;
|
向表sso_t_user 中插入如下数据:
|
INSERT
INTO
`
sso_t_user
`
VALUES
(
1
,
'admin'
,
'96e79218965eb72c92a549dd5a330112'
)
;
INSERT
INTO
`
sso_t_user
`
VALUES
(
2
,
'user'
,
'96e79218965eb72c92a549dd5a330112'
)
;
|
Tips:
- 密码以MD5 加密后存放数据库中为例
- “111111”的MD5值为:“96e79218965eb72c92a549dd5a330112”
2.修改cas服务端配置
在%tomcat_cas%/webapps/cas/WEB_INF/deployerConfigContext.xml 找到如下信息:
|
<bean
class
=
"org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler"
/>
|
修改成如下:
|
<bean
class
=
"org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler"
>
<property
name
=
"dataSource"
ref
=
"dataSource"
>
</property>
<property
name
=
"sql"
value
=
"select password from sso_t_user where login_name=?"
>
</property>
<property
name
=
"passwordEncoder"
ref
=
"MD5PasswordEncoder"
>
</property>
</bean>
|
同时增加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
=
""
/>
</bean>
<bean
id
=
"MD5PasswordEncoder"
class
=
"org.jasig.cas.authentication.handler.DefaultPasswordEncoder"
>
<constructor-arg
index
=
"0"
value
=
"MD5"
/>
</bean>
|
修改后的配置信息如下:
(wqr注:此处一定一定要注意位置,dataSourse和MD5配置是新的bean)
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 ,需要和数据库中查询到的密码验证匹配后才能登陆系统。