文档章节

c3p0 数据源密码加密

晚点回家
 晚点回家
发布于 2017/07/26 08:49
字数 274
阅读 9
收藏 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
广州
私信 提问
C3P0的DataSource如何传给QueryRunner做参数?!

@红薯 你好,想跟你请教个问题: 在http://www.oschina.net/code/snippet_12_6,你说 给QueryRunner传个数据源,可以降低活动链接数,但是C3P0的DataSource 是自己的(http://www.osctools.n...

july
2012/08/29
583
1
C3p0配置详解

3 30 1000 false Test false 100 null false 60 3 60 15 100 3 root password select id from test where id=1 300 false true root false con_test 30000 30 10 30 25 10 0 200 300 在hiber......

长平狐
2012/09/03
4.9K
0
com.mchange.v2.c3p0.combopooleddatasource配置的那些破事

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

蔡少东
2015/01/06
0
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

没有更多内容

加载失败,请刷新页面

加载更多

Confluence 6 自定义你的空间

通过对你的空间进行界面的自定义能够让你的空间更加出类拔萃。 如果你具有空间管理员权限,你可以修改你空间的颜色配色,添加你自己的空间标识,选择是否在你空间中显示边栏。或者你可以进入...

honeymose
55分钟前
1
0
Ubuntu18.04 安装MySQL

1.安装MySQL sudo apt-get install mysql-server 2.配置MySQL sudo mysql_secure_installation 3.设置MySQL非root用户 设置原因:配置过程为系统root权限,在构建MySQL连接时出现错误:ERROR...

AI_SKI
今天
3
0
3.6 rc脚本(start方法) 3.7 rc脚本(stop和status方法) 3.8 rc脚本(以daemon方式启动)

3.6-3.7 rc脚本(start、stop和status方法) #!/usr/bin/env python# -*- coding: utf-8 -*-# [@Version](https://my.oschina.net/u/931210) : python 2.7# [@Time](https://my.oschina.......

隐匿的蚂蚁
今天
3
0
Cnn学习相关博客

CNN卷积神经网络原理讲解+图片识别应用(附源码) 笨方法学习CNN图像识别系列 深度学习图像识别项目(中):Keras和卷积神经网络(CNN) 卷积神经网络模型部署到移动设备 使用CNN神经网络进行...

-九天-
昨天
5
0
flutter 底部输入框 聊天输入框 Flexible

想在页面底部放个输入框,结果键盘一直遮住了,原来是布局问题 Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("评论"), ...

大灰狼wow
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部