单点登陆cas实现3之cas服务器配置数据源

  之前的时候登陆用户和密码都是写死在cas.properties文件中,可实际上是需要从数据库查找,如下

 1.添加jar

       4.2.7版本我们需要添加的jar只有这两 cas-server-support-jdbc-4.2.7.jar  和mysql-connector-java-5.1.34.jar

         复制到webapp/lib中即可.

        或者添加pom

      <dependency>
		    <groupId>org.jasig.cas</groupId>
		    <artifactId>cas-server-core</artifactId>
		    <version>4.2.7</version>
		    <scope>provided</scope>
		</dependency>
		
		<!-- https://mvnrepository.com/artifact/org.jasig.cas/cas-server-support-jdbc -->
		<dependency>
		    <groupId>org.jasig.cas</groupId>
		    <artifactId>cas-server-support-jdbc</artifactId>
		    <version>4.2.7</version>
		</dependency>
		
		<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
		<dependency>
		    <groupId>mysql</groupId>
		    <artifactId>mysql-connector-java</artifactId>
		    <version>5.1.34</version>
		</dependency>

 2.创建数据库 

      e10adc3949ba59abbe56e057f20f883e为123456 的32位 小写MD5加密


CREATE TABLE `fs_user` (
  `id` bigint(15) NOT NULL,
  `user_name` varchar(30) DEFAULT NULL,
  `user_password` varchar(255) DEFAULT NULL,
  `is_effective` varchar(1) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

/*Data for the table `fs_user` */

insert  into `fs_user`(`id`,`user_name`,`user_password`,`is_effective`) values (1,'junjun','e10adc3949ba59abbe56e057f20f883e','Y'),(2,'jun','e10adc3949ba59abbe56e057f20f883e','Y');

3.配置文件修改

         deployerConfigContext.xml  文件修改如下

         1.注释掉下面一句配置(默认匹配cas中的用户名和密码)

    <alias name="acceptUsersAuthenticationHandler" alias="primaryAuthenticationHandler" /> 

        2.添加如下配置,MD5加密和数据源

    <!--begin 从数据库中的用户表中读取MD5 32位小写 -->
      <!-- 自定义加密方式,需要实现cas-coreXX中 PasswordEncoder接口
<bean id="MD5PasswordEncoder"class="org.jasig.cas.adaptors.jdbc.CustomPasswordEncoder"> 
	</bean>
 -->
    <bean id="MD5PasswordEncoder"
	class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder"
	autowire="byName">
		<constructor-arg value="MD5" />
	</bean>
 
	<bean id="queryDatabaseAuthenticationHandler" name="primaryAuthenticationHandler"
		class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
		<property name="passwordEncoder" ref="MD5PasswordEncoder" />
	</bean> 
   
	<alias   name="dataSource"   alias="queryDatabaseDataSource"/>

	<bean id="dataSource"
	  class="com.mchange.v2.c3p0.ComboPooledDataSource"
	  p:driverClass="${database.driverClass}"
	  p:jdbcUrl="${database.url}"
	  p:user="${database.user}"
	  p:password="${database.password}"
	  p:initialPoolSize="${database.pool.initialPoolSize}"
	  p:minPoolSize="${database.pool.minSize}"
	  p:maxPoolSize="${database.pool.maxSize}"
	  p:maxIdleTimeExcessConnections="${database.pool.maxIdleTime}"
	  p:checkoutTimeout="${database.pool.maxWait}"
	  p:acquireIncrement="${database.pool.acquireIncrement}"
	  p:acquireRetryAttempts="${database.pool.acquireRetryAttempts}"
	  p:acquireRetryDelay="${database.pool.acquireRetryDelay}"
	  p:idleConnectionTestPeriod="${database.pool.idleConnectionTestPeriod}"
	  p:preferredTestQuery="${database.pool.connectionHealthQuery}" />

   <!--end 从数据库中的用户表中读取 MD5 32位小写-->

   cas.properties中添加如下配置(记得替换用户名和密码什么的)


# == Basic database connection pool configuration ==
database.driverClass=com.mysql.jdbc.Driver
database.url=jdbc:mysql://127.0.0.1:3306/hap_dev?useUnicode=true&amp;characterEncoding=UTF-8&amp;zeroDateTimeBehavior=convertToNull
database.user=root
database.password=java
database.pool.initialPoolSize=6
database.pool.minSize=6
database.pool.maxSize=18



# Amount of time in seconds after which idle connections
# in excess of minimum size are pruned.
database.pool.maxIdleTime=120

# Maximum amount of time to wait in ms for a connection to become
# available when the pool is exhausted
database.pool.maxWait=10000

# Number of connections to obtain on pool exhaustion condition.
# The maximum pool size is always respected when acquiring
# new connections.
database.pool.acquireIncrement=6

# == Connection testing settings ==


# == Database recovery settings ==

# Number of times to retry acquiring a _new_ connection
# when an error is encountered during acquisition.
database.pool.acquireRetryAttempts=5

# Amount of time in ms to wait between successive aquire retry attempts.
database.pool.acquireRetryDelay=2000

# Period in s at which a health query will be issued on idle
# connections to determine connection liveliness.
database.pool.idleConnectionTestPeriod=30

# Query executed periodically to test health
database.pool.connectionHealthQuery=select 1


#database end=============================
cas.jdbc.authn.query.sql=SELECT  user_password FROM fs_user WHERE user_name=? AND is_effective='Y'

     自定义加密类

package org.jasig.cas.adaptors.jdbc;



import org.apache.commons.codec.digest.DigestUtils;
import org.jasig.cas.authentication.handler.PasswordEncoder;

public class CustomPasswordEncoder  implements PasswordEncoder {

	public  static String salt="XXXX"; 
	
	@Override
	public String encode(String arg0) {
		
		try {
			String sha = DigestUtils.sha256Hex(arg0+salt);
        	System.out.println("---->>>>-------encode方法:加密前(" + arg0 + "),加密后(" + sha + ")");
            return sha;
        } catch (Exception e) {
            return null;
        }
	}
	
	
	
	

}

如上操作,配置什么的都已完成,在启动之前查看下propertyFileConfigurer.xml中cas.cas.properties地址是否正确.

启动,登陆

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
server 地址: http://www.jasig.org/cas/download client 地址: http://www.ja-sig.org/downloads/cas-clients/ 当前最新版本 cas-server-3.4.2 , cas-client-3.1.10 2. 安装 server l 解压 cas-server-3.4.2 ,将 cas-server-3.4.2\modules\cas-server-webapp-3.4.2.war 拷贝到 tomcat 的 webapps 下。 3. 配置 server 3.1. 添加 cas server 依赖的 jar n cas-server-3.4.2\modules\cas-server-support-jdbc-3.4.2.jar 、 cas-server-integration-restlet-3.4.2.jar 拷贝到 D:\server\apache-tomcat-6.0.18\webapps\cas\WEB-INF\lib 目录下。 n 数据库驱动 jar 拷贝到 D:\server\apache-tomcat-6.0.18\webapps\cas\WEB-INF\lib 目录下。 n 到 apache 网站下载下面三个 cas server 依赖 jar 包拷贝到 D:\server\apache-tomcat-6.0.18\webapps\cas\WEB-INF\lib 目录下 Ø http://apache.freelamp.com/commons/collections/binaries/commons-collections-3.2.1-bin.zip Ø http://apache.etoak.com/commons/dbcp/binaries/commons-dbcp-1.4-bin.zip Ø http://apache.etoak.com/commons/pool/binaries/commons-pool-1.5.4-bin.zip n 下载 restlet 相关 http://www.restlet.org/downloads/ , 解压后将下面 jar 拷贝到 D:\server\apache-tomcat-6.0.18\webapps\cas\WEB-INF\lib: ( 它奶奶地这一步骤很折腾 ) com.noelios.restlet.ext.servlet_2.5.jar com.noelios.restlet.ext.spring_2.5.jar com.noelios.restlet.jar org.restlet.ext.spring_2.5.jar org.restlet.jar n 下载 CGlib http://sourceforge.net/projects/cglib/files/ 拷贝到 D:\server\apache-tomcat-6.0.18\webapps\cas\WEB-INF\lib 。 n 下载 ASM/OW2 http://forge.ow2.org/projects/asm/ 拷贝到 D:\server\apache-tomcat-6.0.18\webapps\cas\WEB-INF\lib 。 3.2. 添加数据源
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值