文档章节

c3p0 数据源密码加密

晚点回家
 晚点回家
发布于 2017/07/26 08:49
字数 274
阅读 6
收藏 0

application-context.xml  数据源配置 

需要注意的是: <property name="properties" ref="dataSourceProperties"/> 需要写在最前面  不然可能会出现密码错误等问题

bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="properties" ref="dataSourceProperties"/>
        <property name="driverClass" value="${jdbc.driverClassName}" />
        <property name="jdbcUrl" value="${jdbc.url}" />
        <!--<property name="user" value="${jdbc.username}" />
         <property name="password" value="${jdbc.password}" /> -->
        <property name="autoCommitOnClose" value="true"/>
        <property name="checkoutTimeout" value="${cpool.checkoutTimeout}"/>
        <property name="initialPoolSize" value="${cpool.minPoolSize}"/>
        <property name="minPoolSize" value="${cpool.minPoolSize}"/>
        <property name="maxPoolSize" value="${cpool.maxPoolSize}"/>
        <property name="maxIdleTime" value="${cpool.maxIdleTime}"/>
        <property name="acquireIncrement" value="${cpool.acquireIncrement}"/>
        <property name="maxIdleTimeExcessConnections" value="${cpool.maxIdleTimeExcessConnections}"/>
    </bean>
    <bean id="dataSourceProperties" class="com.ezsite.doc.PropertiesEncryptFactoryBean">  
        <property name="properties">  
            <props>  
                <prop key="user">加密后的用户名</prop>  
                <prop key="password">加密后的密码</prop>  
            </props>  
        </property>  
    </bean>

实现类

需要实现FactoryBean  否则会报数据类型错误

package com.ezsite.doc;

import java.util.Properties;

import org.apache.commons.codec.binary.Base64;
import org.springframework.beans.factory.FactoryBean;

import sun.misc.BASE64Decoder;

public class PropertiesEncryptFactoryBean implements FactoryBean{
	
	private Properties properties;  
    
    public Object getObject() throws Exception {  
        return getProperties();  
    }  
  
    public Class getObjectType() {  
        return java.util.Properties.class;  
    }  
  
    public boolean isSingleton() {  
        return true;  
    }  
  
    public Properties getProperties() {  
        return properties;  
    }  
  
    public void setProperties(Properties inProperties) {  
        this.properties = inProperties;  
        String originalUsername = properties.getProperty("user");  
        String originalPassword = properties.getProperty("password");  
        if (originalUsername != null){  
            String newUsername = deEncryptPassword(originalUsername );  
            properties.put("user", newUsername);  
        }  
        if (originalPassword != null){  
            String newPassword = deEncryptPassword(originalPassword);  
            properties.put("password", newPassword);  
        }  
    }  
      
    private String deEncryptPassword(String originalPassword){  
        return deEncryptString(originalPassword);  
    }  
    //相关解密操作
    private  String deEncryptString(String originalString){  
    	 
		return originalString;    
    }  
}

转载地址:http://xinklabi.iteye.com/blog/2173220

© 著作权归作者所有

共有 人打赏支持
晚点回家
粉丝 0
博文 3
码字总数 1485
作品 0
广州
Hibernate c3p0 数据库连接池

From :http://www.codeweblog.com/hibernate-using-c3p0-connection-pooling/ c3p0是开源JDBC连接池,Hibernate的发布版也有此功能。这篇文章描述怎样使用Hibernate来配置从c3p0。C3p0连接池...

boonya
2014/07/14
0
0
C3P0的详细配置说明(com.mchange.v2.c3p0.ComboPooledDataSource)

C3P0是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSources 对象。 c3p0-config> <default-config...

叶建平
2010/12/31
0
0
com.mchange.v2.c3p0.combopooleddatasource配置的那些破事

<default-config>   <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->   <property name="acquireIncrement">3</property>   <!--定义在从数据库获取新连接失......

蔡少东
2015/01/06
0
0
数据连接池c3p0和dbcp使用

连接池:连接复用,避免了数据库连接频繁建立、关闭的开销。通过以及一套连接使用、分配、治理策略,使得该连接池中的连接可以得到高效、安全的复用。 1.c3p0: (1)C3P0是一个开源的JDBC连...

小学生学习
2017/11/07
0
0
spring下配置dbcp,c3p0,proxool

不管通过何种持久化技术,都必须通过数据连接访问数据库,在Spring中,数据连接是通过数据源获得的。在以往的应用中,数据源一般 是Web应用服务器提供的。在Spring中,你不但可以通过JNDI获取...

Hacken_Hu
2013/01/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

vue组件传值之(父子)

⚠️组件的作用域是孤立的,vue解决组件传值问题是通过props ⚠️子传父的时候需要vm.$emit触发实例上的事件,页面需要定一个方法去取值 ⚠️一定要注意命名方式和书写,例如mylChart和myl-c...

peakedness丶
30分钟前
1
0
SpringBoot开发案例之整合Dubbo分布式服务

前言 在 SpringBoot 很火热的时候,阿里巴巴的分布式框架 Dubbo 不知是处于什么考虑,在停更N年之后终于进行维护了。在之前的微服务中,使用的是当当维护的版本 Dubbox,整合方式也是使用的 ...

微笑向暖wx
45分钟前
1
0
TypeScript基础入门之装饰器(二)

转发 TypeScript基础入门之装饰器(二) 装饰器求值 如何应用装饰器应用于类内的各种声明的顺序: 1. 对每个实例成员应用参数装饰器,后跟Method,Accessor或Property Decorators。 2. 对每个静...

durban
45分钟前
1
0
Java程序员年薪40W是什么水平?税前还是税后?

很多人学Java都是冲着Java的高薪来的,那么搞Java的程序员,年薪40W到底是个什么水平呢,本文达妹和大家一起探讨一下。 前几天在论坛看到这么一个问题,搞Java的程序员年薪40w是什么水平?一...

架构师springboot
50分钟前
2
0
区块链100讲:盘点那些常用的加密算法原理

在开发过程中,常常用到各种加密方法和算法,本文总结了几种常用加密方法的原理。 1 对称加密 原理:加密和解密数据使用同一个密钥,适合对大量数据进行加解密 安全性:关键是密钥的保存方式...

HiBlock
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部