CAS服务端配置数据源验证用户名密码(三)

本文档介绍了如何在CAS服务端配置数据库连接,实现基于数据库的用户认证。首先,你需要在deployerConfigContext.xml中添加数据库源配置、密码编码器及数据库查询处理器。接着,修改认证管理器配置,启用数据库认证处理器。别忘了引入数据库相关jar包并重启服务。最后,确保数据库中有对应的用户表和数据,即可进行测试。注意,如果登录失败,可能需要取消密码加密配置。

我们在使用CAS进行单点登录时肯定是要用真实数据来进行校验的,所以就需要将CAS的服务端中加入连接数据库的配置,下面就跟大家一起学习一下。

1、修改cas服务端中web-inf下deployerConfigContext.xml ,添加如下配置

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"  
			  p:driverClass="com.mysql.jdbc.Driver"  
			  p:jdbcUrl="jdbc:mysql:// 192.168.200.128:3306/test?characterEncoding=utf8"  
			  p:user="root"  
			  p:password="1234" /> 
<bean id="passwordEncoder" 
class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder"  
		c:encodingAlgorithm="MD5"  
		p:characterEncoding="UTF-8" />  
<bean id="dbAuthHandler"  
		  class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler"  
		  p:dataSource-ref="dataSource"  
		  p:sql="select password from tb_user where username = ?"  
		  p:passwordEncoder-ref="passwordEncoder"/>

2、然后在配置的开始部分找到如下配置进行修改

 <bean id="authenticationManager" class="org.jasig.cas.authentication.PolicyBasedAuthenticationManager">
        <constructor-arg>
            <map>               
                <entry key-ref="proxyAuthenticationHandler" value-ref="proxyPrincipalResolver" />
             <!--  <entry key-ref="primaryAuthenticationHandler" value-ref="primaryPrincipalResolver" /> 
                <entry key-ref="dbAuthHandler" value-ref="primaryPrincipalResolver"/>
            </map>
        </constructor-arg>      
        <property name="authenticationPolicy">
            <bean class="org.jasig.cas.authentication.AnyAuthenticationPolicy" />
        </property>
</bean>

其中

 <entry key-ref="primaryAuthenticationHandler" value-ref="primaryPrincipalResolver" />

一句是使用固定的用户名和密码,我们在下面可以看到这两个bean ,如果我们使用数据库认证用户名和密码,需要将这句注释掉。
添加下面这一句配置

<entry key-ref="dbAuthHandler" value-ref="primaryPrincipalResolver"/>

3、在webapps\cas\WEB-INF\lib 下引入数据库相关jar包,然后重启CAS服务端。
在这里插入图片描述
4、启动数据库服务,创建一张用户表,包含username和password字段,插入几条数据。
然后就可以用数据库中的用户名和密码进行测试了。
在这里插入图片描述在这里插入图片描述在这里插入图片描述

注:如果配置用户数据后登陆失败,参考以下内容进行修改:
还是web-inf下deployerConfigContext.xml。

<bean id="dbAuthHandler"  
		  class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler"  
		  p:dataSource-ref="dataSource"  
		  p:sql="select password from tb_user where username = ?"  />
		   <!-- p:passwordEncoder-ref="passwordEncoder"-->

注掉CAS的密码加密。因为我们一般配置的密码已经是密文。无需在CAS进行配置。

喜欢的朋友欢迎一键三连。我们一起学习,进步~~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

stalin_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值