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


本文转自 leizhimin 51CTO博客,原文链接:http://blog.51cto.com/lavasoft/807502,如需转载请自行联系原作者
相关文章
|
3月前
|
JavaScript 前端开发 数据安全/隐私保护
一文带你了解多文件混淆加密
一文带你了解多文件混淆加密
29 0
|
4月前
|
设计模式 前端开发 Java
了解 Spring MVC 架构、Dispatcher Servlet 和 JSP 文件的关键作用
Spring MVC 是 Spring 框架的一部分,是一个 Web 应用程序框架。它旨在使用 Model-View-Controller(MVC) 设计模式轻松构建Web应用程序。
63 0
|
15天前
|
安全 Java 数据库
Spring Security加密解密
Spring Security加密解密
|
1月前
|
前端开发 安全 Java
Java 新手如何使用Spring MVC RestAPI的加密
Java 新手如何使用Spring MVC RestAPI的加密
|
2月前
|
数据安全/隐私保护 Python Windows
Python办公自动化【Word转换PDF、PDF读取内容、PDF合并文件、PDF拆分文件、PDF加密文件、PPT基本操作-增加幻灯片、增加内容】(六)-全面详解(学习总结---从入门到深化)
Python办公自动化【Word转换PDF、PDF读取内容、PDF合并文件、PDF拆分文件、PDF加密文件、PPT基本操作-增加幻灯片、增加内容】(六)-全面详解(学习总结---从入门到深化)
47 0
|
3月前
|
安全 数据安全/隐私保护
如何使用GPG工具加密和解密文件?
如何使用GPG工具加密和解密文件?
157 0
|
3月前
|
PHP 数据安全/隐私保护
|
3月前
|
安全 算法 Java
spring security 如何对密码进行加密
spring security 如何对密码进行加密
|
3月前
|
数据安全/隐私保护 Python
Python办公自动化【Word转换PDF、PDF读取内容、PDF合并文件、PDF拆分文件、PDF加密文件、PPT基本操作-增加幻灯片、增加内容】(六)-全面详解(学习总结---从入门到深化)(下)
Python办公自动化【Word转换PDF、PDF读取内容、PDF合并文件、PDF拆分文件、PDF加密文件、PPT基本操作-增加幻灯片、增加内容】(六)-全面详解(学习总结---从入门到深化)
34 1
|
3月前
|
数据安全/隐私保护 Python Windows
Python办公自动化【Word转换PDF、PDF读取内容、PDF合并文件、PDF拆分文件、PDF加密文件、PPT基本操作-增加幻灯片、增加内容】(六)-全面详解(学习总结---从入门到深化)(上)
Python办公自动化【Word转换PDF、PDF读取内容、PDF合并文件、PDF拆分文件、PDF加密文件、PPT基本操作-增加幻灯片、增加内容】(六)-全面详解(学习总结---从入门到深化)
54 0