Spring读取properties文件加密解密
来源:互联网 发布:淘宝的竖向分类怎么弄 编辑:程序博客网 时间:2024/05/22 05:17
文章概要:数据源配置文件database.properties里面填写加密后的密文,程序读取配置文件的时候进行相应的解密操作后再注入使用。此功能主要用于生产环境。使用的spring版本:4.2.5,配置采用一贯的作风javaConfig首先在springmvc配置文件当中声明一个PropertyPlaceholderConfigurer类型的bean:
@Bean public PropertyPlaceholderConfigurer datasourceProperties() { PropertyEncrypt propertyEncrypt = new PropertyEncrypt(); propertyEncrypt.setLocations(new ClassPathResource("database.properties")); return propertyEncrypt; }
然后定义用于读取配置文件时解密的类继承于PropertyPlaceholderConfigurer:
import com.core.shared.StringUtils;import com.core.shared.encrypt.PEncryptUtil;import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;import java.util.ArrayList;import java.util.List;public class PropertyEncrypt extends PropertyPlaceholderConfigurer { private static final List<String> encryptKey = new ArrayList<>(); static { encryptKey.add("master.jdbc.url"); encryptKey.add("master.jdbc.username"); encryptKey.add("master.jdbc.password"); encryptKey.add("slave.jdbc.url"); encryptKey.add("slave.jdbc.username"); encryptKey.add("slave.jdbc.password"); } public void addEncryptKey(String key) { if (StringUtils.isNotEmpty(key)) { encryptKey.add(key); } } @Override protected String convertProperty(String propertyName, String propertyValue) { if (encryptKey.contains(propertyName)) { propertyValue = PEncryptUtil.decrypt(propertyValue); } return propertyValue; }}
PEncryptUtil是自己定义的加密解密类,最后在使用的时候使用@Value注入:
@Value("${master.jdbc.driverClassName}") private String masterDriverClassName; @Value("${master.jdbc.url}") private String masterUrl; @Value("${master.jdbc.username}") private String masterUsername; @Value("${master.jdbc.password}") private String masterPassword;
配置文件里直接用密文就好了:
master.jdbc.url=abcmaster.jdbc.username=abcmaster.jdbc.password=abc
阅读全文
0 0
- Spring读取properties文件加密解密
- java spring中对properties属性文件加密及其解密
- java spring中对properties属性文件加密及其解密
- java spring中对properties属性文件加密及其解密
- java spring中对properties属性文件加密及其解密
- java spring中对properties属性文件加密及其解密
- java spring中对properties属性文件加密及其解密
- java spring中对properties属性文件加密及其解密
- spring加密properties文件
- spring加密properties文件
- SPRING使用占位符读取字段加密的properties文件
- spring xml读取Properties文件中的加密字段
- Spring 读取 properties文件
- Spring 读取properties文件
- spring读取properties文件
- spring 读取properties文件
- spring读取properties文件
- spring读取properties文件
- 基于spring mvc下请求的简单工作流程及其相应配置集成
- Java反射(一)----基础介绍
- qt之Q_PROPERTY
- ADSL命令定时切换
- Hyperledger fabric0.6的链码接口整理
- Spring读取properties文件加密解密
- Android Studio如何获取SHA1或MD5(百度地图API开发中用到的SHA1)
- Windows Server 2012 R2 远程桌面授权
- bitmap学习
- CNN:weight decay,momentum,batch normalization
- PostgreSQL\HybridDB for PG 毫秒级多维数据透视 案例分享
- EventBus使用
- android小技巧
- C++ Primer 第6章 函数 学习笔记