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

上篇博客介绍的CASDemo,登录界面用户名、密码并没有通过数据库查询认证。本博客,将介绍如何通过xml配置,进行CAS登录数据库查询认证。

所需数据库sso_cas,库中的表:tb_user,表中字段:Idusernamepassword


 


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

1,修改cas服务端配置


tomcatwebapps/cas/WEB_INF/deployerConfigContext.xml 文件做如下修改:

 

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

 

修改为:

<beanclass="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">

        <propertyname="dataSource" ref="dataSource" ></property>

        <propertyname="sql" value="select password from tb_user whereusername=?" ></property>

     </property>

</bean>

 

添加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" />

</bean>

 

注意

1,QueryDatabaseAuthenticationHandlercas-server-support-jdbc提供的查询接口其中一个是通过配置一个 SQL 语句查出密码,与所给密码匹配;

2,sql语句:select password from tb_user whereusername=?根据用户名username 查询表tb_user中密码password字段,CAS会匹配用户输入的密码,如果匹配则通过;

 

注:可配置多个数据库 

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

假如a_user中有一个用户:auserb_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是不能登录成功。

 


 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值