加密Spring加载的Properties文件

加密Spring加载的Properties文件
本文介绍了如何在Spring框架中加密加载的Properties文件中的密码口令,通过重写PropertyPlaceholderConfigurer的方法实现偷梁换柱,在真正使用配置之前完成解密。
转自:http://lavasoft.blog.51cto.com/62575/807502/
加密Spring加载的Properties文件
 
目标:要加密spring的jdbc配置文件的密码口令。
 
实现思路:重写加载器的方法,做到偷梁换柱,在真正使用配置之前完成解密。
 
1、扩展
package com.lavasoft.freamwork.ext.spring; 

import com.lavasoft.freamwork.common.ThreeDES; 
import org.springframework.beans.BeansException; 
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; 
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer; 

import java.util.Properties; 

/** 
* 重写PropertyPlaceholderConfigurer的processProperties方法实现 

* @author leizhimin 2012-03-14 16:47 
*/
 
public class PropertyPlaceholderConfigurerExt extends PropertyPlaceholderConfigurer{ 

        @Override 
        protected void processProperties(ConfigurableListableBeanFactory beanFactory, Properties props) 
                        throws BeansException { 
                String password = props.getProperty("jdbc.password"); 
                if (password != null) { 
                        //解密jdbc.password属性值,并重新设置 
                        props.setProperty("jdbc.password", ThreeDES.getDesString(password)); 
                } 
                super.processProperties(beanFactory, props); 

        } 
}
 
2、配置
        <!-- 不加密时候使用 --> 
        <!--<context:property-placeholder location="classpath:jdbc.properties,classpath:tdmc.properties"/>--> 

        <!-- 加密时候使用 --> 
        <bean id="propertyConfig" class="com.lavasoft.freamwork.ext.spring.PropertyPlaceholderConfigurerExt"> 
                <property name="locations"> 
                        <list> 
                                <value>classpath:jdbc.properties</value> 
                                <value>classpath:tdmc.properties</value> 
                        </list> 
                </property> 
        </bean> 
 
3、jdbc配置文件
jdbc.driver=com.mysql.jdbc.Driver 
jdbc.url=jdbc:mysql://10.87.30.32:3306/tdmc_leizm 
jdbc.user=root 
#jdbc.password=123456 
jdbc.password=tAeE2ib1ILE=
 
加密算法就不公开了。

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值