CAS SSO研究二:cas_server通过查询数据库验证用户名、密码正确性


1、 jar包准备,因为习惯使用bonecp数据源:

mysql jdbc驱动:mysql-connector-java-5.1.13-bin.jar

cas jdbc支持:cas-server-support-jdbc-3.4.11.jar

数据源:bonecp-0.7.1.RELEASE.jar、guava-r09.jar

2、编辑:WEB-INF\deployerConfigContext.xml,加入数据源:

<bean id="dataSource" class="com.jolbox.bonecp.BoneCPDataSource" destroy-method="close">
		   <property name="driverClass" value="com.mysql.jdbc.Driver" />
		   <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=UTF-8" />
		   <property name="username" value="root"/>
		   <property name="password" value="root"/>
		   <property name="idleConnectionTestPeriod" value="60"/>
		   <property name="idleMaxAge" value="240"/>
		   <property name="maxConnectionsPerPartition" value="30"/>
		   <property name="minConnectionsPerPartition" value="10"/>
		   <property name="partitionCount" value="3"/>
		   <property name="acquireIncrement" value="5"/>
		   <property name="statementsCacheSize" value="100"/>
		   <property name="releaseHelperThreads" value="3"/>
		</bean>
将默认的规则验证方式注释,并加入新的验证:

	<!--
				<bean
					class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />
				-->
				<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
				 <property name="dataSource" ref="dataSource" />
				 <property name="sql" 
					    value="select password from gg_user where loginname = ?" />
				 <property  name="passwordEncoder"  ref="passwordEncoder"/>
				</bean>
其中passwordEncoder,我使用的是自定义的encoder:

<bean id="passwordEncoder" 
            class="xx.xx.security.PassWordEncoder"/>

import org.jasig.cas.authentication.handler.PasswordEncoder;
import org.springframework.security.authentication.encoding.ShaPasswordEncoder;

public class PassWordEncoder implements PasswordEncoder {

	@Override
	public String encode(String args) {
		ShaPasswordEncoder encoder = new ShaPasswordEncoder();
		encoder.setEncodeHashAsBase64(true);
		return encoder.encodePassword(args, null);
	}
	
}

至此即实现了cas_server通过查询数据库验证用户名、密码正确性


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值