文档章节

c3p0 数据源密码加密

晚点回家
 晚点回家
发布于 2017/07/26 08:49
字数 274
阅读 156
收藏 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
广州
私信 提问
加载中

评论(0)

JDBC连接数据库的四种方式:DriverManager,DataSource,DBCP,C3P0

方法1:使用java.sql.DriverManager类 驱动管理器类,用于管理所有注册的驱动程序。 (注:DataSource 接口是 JDBC 2.0 API 中的新增内容,它提供了连接到数据源的另一种方法。使用 DataSour...

osc_wff1160a
2018/07/23
8
0
JFinal Web开发学习(六)验证码验证和注册细节

效果: 实现了注册界面的验证码验证、确认密码、密码md5加盐加密、C3P0插件数据库操作、读取外部配置文件. 1.在注册页面添加了确认密码输入框,修改了字段名称 <!DOCTYPE html><html><head><...

osc_ecixnrri
2019/01/20
1
0
MySQL数据库实操教程(32)——数据库连接池

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 https://blog.csdn.net/lfdfhl/article/details/99658807 自定义View系列教程00–推翻自己和...

谷哥的小弟
2019/08/15
0
0
driveManager 与datasource 数据源

原文链接: https://blog.csdn.net/u013905744/article/details/52919276 https://blog.csdn.net/u014236541/article/details/77851683 DataSource 接口是 JDBC 2.0 API 中的新增内容,它提供......

thekenofdis
03/31
0
0
数据库连接池之c3p0的配置 + 问题解决方案

关于c3p0连接池的配置与使用网上教程很多,但很多朋友在配置的时候出现了不少这样那样的问题,这里我就详细介绍怎么配置以及出现问题的解决方案! 先下载c3p0的依赖包和数据库的驱动包: c3p...

osc_320iuulz
2019/10/20
6
0

没有更多内容

加载失败,请刷新页面

加载更多

如何限制利用spring boot 框架自动限制上传文件

spring:   application:     name: appname   servlet:     multipart:       enabled: true       max-file-size: 512MB       max-request-size: 512MB @Ex...

osc_31d5oo2i
33分钟前
24
0
NATAPP1分钟快速新手图文教程(远程办公程序员联调神器)

NATAPP官方地址:https://natapp.cn/ 应用场景:前后端异地联调、系统演示、远程临时访问 首先在本站注册账号 点击注册 登录后,点击左边 购买隧道,免费/付费均可 根据需要选择隧道协议,这里以...

明德先生
35分钟前
16
0
李子柒的视频为什么这么吸引人?对她在B站上发布的视频进行分析

前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 作者:CDA数据分析师 加企鹅群695185429即可免费获取,资料全...

osc_tc2z9lbh
35分钟前
25
0
MySQL如何有效的存储IP地址

前几天,阿淼的一个朋友去面试,他回来告诉我,面试官问他 IP 地址是怎么存在数据库的?他当时也没多想,直接就回答的存字符串啊(心想:这么简单的问题,怕不是看不起我吧) 前面这段权当看...

osc_q5m9dzk0
36分钟前
32
0
一口气说出8种幂等性解决重复提交的方案,面试官懵了!

1.什么是幂等 在我们编程中常见幂等 1)select查询天然幂等 2)delete删除也是幂等,删除同一个多次效果一样 3)update直接更新某个值的,幂等 4)update更新累加操作的,非幂等 5)insert非幂等操作...

osc_kd8rd7b3
38分钟前
27
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部