加密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=


4.好多人都说路径找不到。其实要是放在web-inf下面直接写路径读取就行


直接上xml文件


 
       
    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
             <!-- 把jdbc.properites放到web-inf下面的配置-->
                 <value>/WEB-INF/jdbc.properties</value>
                <!-- classpath是引用src目录下的文件写法目录是src下面com.wh.util--> 


                 classpath:/com/wh/util/jdbc.properties  
                <!--要是有多个配置文件,只需在这里继续添加即可 -->
            </list>
        </property>
    </bean>


这样就可以读取了。读取哪个配置哪个。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值