spring--给配置文件.properties加密
11111111111编写类并继承PropertyPlaceholderConfigurer.java
package com.xx.encryptDecrypt;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import org.apache.log4j.Logger;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;
import com.xx.core.encrypt.EncryptUtil;
/**
 * <br>
 * Title:PropertyPlaceholderConfigurerExt <br>
 * Description:PropertyPlaceholderConfigurer扩展
 */
public class PropertyPlaceholderConfigurerExt extends PropertyPlaceholderConfigurer {
	private static Map<String, String> propertyMap;
	private static Logger log = Logger.getLogger(PropertyPlaceholderConfigurerExt.class);
	@Override
	protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess, Properties props) throws BeansException {
		propertyMap = new HashMap<String, String>();
		String encryptNames = props.getProperty("encryptNames");
		for (Object key : props.keySet()) {
			String keyStr = key.toString();
			String value = props.getProperty(keyStr);
if (encryptNames.contains(keyStr)) {
				try {
					props.setProperty(keyStr, EncryptUtil.decrypt(value));
					propertyMap.put(keyStr, EncryptUtil.decrypt(value));
				} catch (Exception e) {
					e.printStackTrace();
					log.info("解密出错,配置文件的密文可能有误!!!!!!!!!1");
				}
			} else {
				propertyMap.put(keyStr, value);
			}
		}
		System.out.println(propertyMap.toString());
super.processProperties(beanFactoryToProcess, props);
	}
// 自定义一个方法,即根据key拿属性值,方便java代码中取属性值
	public static String getProperty(String name) {
		return propertyMap.get(name);
	}
}
22222222222---spring上下文配置
<bean id="propertyConfigurer" class="com.ytd.encryptDecrypt.PropertyPlaceholderConfigurerExt"> 
         <property name="location" value="classpath:/conf/app.properties"/>
   </bean>
3333333333---app.properties文件
账号密码改为密文
jdbc.username=bcc5b4b5174967b7
jdbc.password=bcc5b4b5174967b7
并添加键值对,作为解密标识
encryptNames=jdbc.username,jdbc.password
4444444444加密工具EncryptUtil.java不在贴出
spring--给配置文件.properties加密的更多相关文章
- Spring Boot 配置文件密码加密两种方案
		
Spring Boot 配置文件密码加密两种方案 jasypt 加解密 jasypt 是一个简单易用的加解密Java库,可以快速集成到 Spring 项目中.可以快速集成到 Spring Boot 项 ...
 - spring boot 配置文件properties和YAML详解
		
spring boot 配置文件properties和YAML详解 properties中配置信息并获取值. 1:在application.properties配置文件中添加: 根据提示创建直接创建. ...
 - spring*.xml配置文件明文加密
		
spring*.xml配置文件明文加密 说明:客户要求spring*.xml中Oracle/Redis/MongoDB的IP.端口.用户名.密码不能明文存放,接到需求的我,很无奈,但是还是的硬着头皮搞 ...
 - spring jdbc配置文件进行加密解密
		
最近做一个项目,安全上有点要求,就是要对数据库相关的配置进行加密,配置文件如下: #加密前#datasource.type=mysql #datasource.driverClassName=com. ...
 - Java中如何获取spring中配置文件.properties中属性值
		
通过spring配置properties文件 1 2 3 4 5 6 7 8 9 <bean id="propertyConfigurer" class="co ...
 - spring boot 配置文件加密数据库用户名/密码
		
这篇文章为大家分享spring boot的配置文件properties文件里面使用经过加密的数据库用户名+密码,因为在自己做过的项目中,有这样的需求,尤其是一些大公司,或者说上市公司,是不会把这些敏感 ...
 - java  Spring使用配置文件读取jdbc.properties
		
Spring使用配置文件读取jdbc.properties 在beans.xml中加入两个必须的bean [html]<bean id="propertyConfigurer" ...
 - 【转】spring管理属性配置文件properties——使用PropertiesFactoryBean|spring管理属性配置文件properties——使用PropertyPlaceholderConfigurer
		
spring管理属性配置文件properties--使用PropertiesFactoryBean 对于属性配置,一般采用的是键值对的形式,如:key=value属性配置文件一般使用的是XXX.pr ...
 - Spring boot 配置文件详解 (properties 和yml )
		
从其他框架来看 我们都有自己的配置文件, hibernate有hbm,mybatis 有properties, 同样, Spring boot 也有全局配置文件. Springboot使用一个全局的配 ...
 
随机推荐
- Atitit 支出分类表  会计科目(1)资产(2)负债(3)资本(4)收益(5)费用(成本)  资产分类表 attilax总结
			
Atitit 支出分类表 会计科目(1)资产(2)负债(3)资本(4)收益(5)费用(成本) 资产分类表 attilax总结 会计科目对一般不懂会计的管理人员,常会有莫测高深的感觉,因此不仅不愿去 ...
 - set names utf8;
			
对应用程序来说,强制将它们发起的数据库链接设置成UTF8编码有什么办法? 每个链接建立时先执行set names utf8; [mysqld] init-connect=‘set names utf8 ...
 - go语言关键字图示
			
Go语言一共有25个关键字,除了select,上文基本上已经一网打尽了.为了加深印象,我们用一张结构图来说明一下: 这张图如果看不清的话,我们将其拆成两张图,再注掉分支流程那部分的局部图: 分支流程部 ...
 - error $GOPATH: no library found in $GOPATH: rdkafka
			
安装confluent-kafka-go出错时,请使用brew安装pkg-config,手动go get安装的pkg-config还不行... 错误提示: go get -u github.com/c ...
 - linux通用技巧集合
			
1.将程序置为后台进程运行,关闭终端程序继续运行 nohup ./test.sh & 2.列出当前后台运行的进程列表包括进程id jobs -l 3.根据进程id杀掉该进程 kill - pi ...
 - Android gradle 配置
			
gradle https://www.cnblogs.com/qianxudetianxia/p/4948499.html flavor https://blog.csdn.net/user11223 ...
 - 给centos7.3添加中文拼音输入法输入汉字
			
https://jingyan.baidu.com/article/86f4a73eaa0a6337d6526985.html
 - [转java发送http的get、post请求]
			
Http请求类 package wzh.Http; import java.io.BufferedReader; import java.io.IOException; import java.io. ...
 - IIS 请求 超时设置
			
asp.net 默认的 session state 模式是 in proc(进程内),数据是在网站的应用程序池里面保存的.这样在 web.config 设置的超时时间,是在应用程序池没有发生回收的基础 ...
 - Angular4学习笔记-目录汇总
			
Angular4学习笔记(一)-环境搭建 Angular4学习笔记(二)-在WebStorm中启动项目 Angular4学习笔记(三)- 路由 Angular4学习笔记(四)- 依赖注入 Angula ...