【转载】加密Spring加载的Properties文件
目标:要加密spring的jdbc配置文件的密码口令。
实现思路:重写加载器的方法,做到偷梁换柱,在真正使用配置之前完成解密。
1.扩展
package com.rail.comm;
import java.util.Properties;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;
/**
*
* 项目名称:rwoa
* 类名称:PropertyPlaceholderConfigurerExt
* 类描述: 对数据库用户名密码加密
* 创建人:赵井桂
* 创建时间:2012-5-17 上午10:45:27
* 修改人:赵井桂
* 修改时间:2012-5-17 上午10:45:27
* 修改备注:
* @version
*
*/
public class PropertyPlaceholderConfigurerExt extends PropertyPlaceholderConfigurer{
@Override
protected void processProperties(ConfigurableListableBeanFactory beanFactory, Properties props)
throws BeansException {
String username=props.getProperty("datasource.username");
String password = props.getProperty("datasource.password");
//解密jdbc.password属性值,并重新设置
props.setProperty("datasource.username",Util.decrypt(username));
props.setProperty("datasource.password",Util.decrypt(password));
super.processProperties(beanFactory, props);
}
}
2.Spring配置文件修改
//无加密
<!-- <bean id="placeholderConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">-->
//加密后的
<bean id="placeholderConfig" class="com.rail.comm.PropertyPlaceholderConfigurerExt">
<property name="location">
<value>classpath:init.properties</value>
</property>
</bean>
3.init.properties 文件修改
datasource.type=mysql
datasource.driverClassName=com.mysql.jdbc.Driver
datasource.url=jdbc:mysql://192.168.1.46:3306/rwoadb?useUnicode=true&characterEncoding=utf-8
datasource.username=2CCEE362A852387BD51C63E4780F2588
datasource.password=984027EDC2227C8EAF5D9733178C6418
4.加密算法实现,这里就不在赘述。
【转载】加密Spring加载的Properties文件的更多相关文章
- 解密Spring加载的Properties文件
Spring的框架中,org.springframework.beans.factory.config.PropertyPlaceholderConfigurer类可以将.properties(key ...
- SpringMVC加载配置Properties文件的几种方式
最近开发的项目使用了SpringMVC的框架,用下来感觉SpringMVC的代码实现的非常优雅,功能也非常强大, 网上介绍Controller参数绑定.URL映射的文章都很多了,写这篇博客主要总结一下 ...
- 【Java Web开发学习】Spring加载外部properties配置文件
[Java Web开发学习]Spring加载外部properties配置文件 转载:https://www.cnblogs.com/yangchongxing/p/9136505.html 1.声明属 ...
- Eclipse下SpringBoot没有自动加载application.properties文件
Eclipse内创建SpringBoot项目,在java/main/resources文件夹下面创建application.properties配置文件,SpringApplication.run后发 ...
- 【转载】Spring加载resource时classpath*:与classpath:的区别
免责声明: 本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除. 原文作者:kyfxbl 原文地址: spring配置中classpath和cla ...
- Java实现动态加载读取properties文件
问题: 当我们使用如下语句加载.properties时: ClassLoader classLoader = this.getClass().getClassLoader(); Properties ...
- spring加载hibernate映射文件的几种方式。转自:http://blog.csdn.net/huiwenjie168/article/details/7013618
在Spring的applicationContext.xml中配置映射文件,通常是在<sessionFactory>这个Bean实例中进行的,若配置的映射文件较少时,可以用sessionF ...
- java web项目启动时自动加载自定义properties文件
首先创建一个类 public class ContextInitListener implements ServletContextListener 使得该类成为一个监听器.用于监听整个容器生命周期的 ...
- spring加载hibernate映射文件的几种方式 (转)
在Spring的applicationContext.xml中配置映射文件,通常是在<sessionFactory>这个 Bean实例中进行的,若配置的映射文件较少时,可以用session ...
随机推荐
- MAC之find与grep
小白,新手.有错请指出. grep一般是搜指定文件中的内容:而find是搜对应的文件 find:1. 找出当前文件目录及其子目录含有开头a的文件. “.”是当前目录 “-ls”显示详细信息fin ...
- MapReduce任务分析与讨论MapReduce job explained
In the last post we saw how to run a MapReduce job on Hadoop. Now we're going to analyze how a MapRe ...
- Zabbix iostat 监控配置
## zabbix iostat 监控模板安装与配置 配置定时任务,用于生成iostat的统计数据 crontab -e * * * * * /usr/local/zabbix327/bin/iost ...
- tcp协议的端口状态
Listening Syn_sent syn_rcvd established close_wait time_wait --------- 对方主动关闭(对方调用close()), 我方的状态变为 ...
- 如何利用Framework模型生成IQD文件
很多Cognos的新手在接触Transform建模的时候对于iqd文件都有一种朦胧的感觉,当然也不必去死记硬别它的格式,下面我们就来说一下如何用Framework工具来生成iqd文件. 1:打开fra ...
- JavaScript 与 PHP 的语法区别
1. 基本类型 php的基本类型分别: .基本数据类型:整型.小数(float/double).字符串.布尔类型 .复合类型:数组.对象 .特殊类型:Null,资源类型 JavaScript的基本类型 ...
- 移动端兼容 - faskclick.js
fasckclick为解决移动端300ms延迟而生 github地址为:https://github.com/ftlabs/fastclick 使用方法: 1. 原生使用(window.onload或 ...
- 分享几个.NET 下的计划任务组件
Quartz http://www.quartz-scheduler.net/(现项目在使用,可以看我之前的文章) Hangfire http://hangfire.io/ Install-Packa ...
- matlab histeq函数介绍
Histeq Enhance contrast using histogram equalization 该函数通过直方图均衡化来添加对照度 Syntax J = histeq(I,hgram) De ...
- 算法笔记_171:历届试题 小朋友排队(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 n 个小朋友站成一排.现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友. 每个小朋友都有一个不高兴的程度.开始的 ...