目录

CAS数据库查询认证xml配置

目录

CAS数据库查询认证(xml配置)

上篇博客介绍的

CAS

Demo

,登录界面用户名、密码并没有通过数据库查询认证。本博客,将介绍如何通过

xml

配置,进行

CAS

登录数据库查询认证。

所需数据库

sso

_cas,

库中的表:

tb_user

,表中字段:

Id

username

password

https://img-blog.csdn.net/20150127155743729?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGFueHVlbWluMTIzNDU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

https://img-blog.csdn.net/20150127155719609?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGFueHVlbWluMTIzNDU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

数据库查询认证(通过

xml

配置)

1

,修改

cas

服务端配置

https://img-blog.csdn.net/20150127155729015?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGFueHVlbWluMTIzNDU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

tomcat

webapps/cas/WEB_INF/deployerConfigContext.xml

文件做如下修改:

<beanclass=“org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler”/>

修改为:

<beanclass=“org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler”>

<propertyname=“dataSource” ref=“dataSource” >

<propertyname=“sql” value=“select password from tb_user whereusername=?” >

添加

datasource bean

的定义:

<beanid=“dataSource”

class=“org.springframework.jdbc.datasource.DriverManagerDataSource”>

<propertyname=“driverClassName” value=“com.mysql.jdbc.Driver” />

<propertyname=“url” value=“jdbc:mysql://localhost/sso_cas” />

<propertyname=“username” value=“root” />

<propertyname=“password” value=“root” />

注意

1,QueryDatabaseAuthenticationHandler

cas-server-support-jdbc

提供的查询接口其中一个是通过配置一个

SQL

语句查出密码,与所给密码匹配;

2,sql

语句

:select password from tb_user whereusername=?

根据用户名

user

name

查询表

tb_user

中密码

password

字段,

CAS

会匹配用户输入的密码,如果匹配则通过;

注:可配置多个数据库

如果需要配置多个数据库,可以配置多个

QueryDatabaseAuthenticationHandler

和多个

datasource

假如

a_user

中有一个用户:

auser

b_user

中有一个用户

buser

,这样你无论用哪一个用户登录,

CAS

就会先查

a_user

,如果用户名密码都正确,那么就通过,如果

a_user

中验证失败,那么

CAS

就会再查

b_user

,用户名密码都正确就算通过了,此时不正确,就算这次登录验证没通过。

添加相关的

jar

需要在

web

项目的

lib

下添加两个包:

cas-server-support-jdbc-x.x.x.jar

mysql-connector-java-x.x.x-bin.jar

(具体版本号根据情况而定)

按如下配置好后,进入

CAS

登录页,用户名密码需要通过查询数据库来认证,输入用户名

admin

,密码

123

,才可登录成功;如果输入用户名

admin

,密码

admin

是不能登录成功。

https://img-blog.csdn.net/20150127155821076?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGFueHVlbWluMTIzNDU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center