加密Spring加载的Properties文件

加密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=
 
加密算法就不公开了。

本文出自 “熔 岩” 博客,谢绝转载!

你可能感兴趣的:(spring,职场,休闲)