Spring读取properties文件加密解密
2017-06-29 14:39
141 查看
文章概要:数据源配置文件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=abc master.jdbc.username=abc master.jdbc.password=abc
相关文章推荐
- ASP.NET 2.0加密解密Web.config配置文件
- 【加密与解密】C#如何读取pem的KEY文件
- c# winform 文件内容的加密与解密
- 完成了lua文件的加密解密
- c#实现文件加密、解密及文件拖拽至程序图标直接打开(转)
- 对文件进行EFS加密和解密
- 使用Des,MD5 加密.解密.字符串.文件
- 一个简单的C++加密,解密文件程序
- java 实现文件内容的加密和解密
- Java/Android 加密解密压缩文件夹
- 如何使用 Visual C# 加密和解密文件
- 使用Vi/Vim给文件加密和解密
- java对文件进行解压缩、加密、解密处理
- ASP.NET2.0中配置文件的加密与解密
- C语言实现任何文件的加密解密
- 如何使用 Visual C# 加密和解密文件
- ASP.NET2.0中配置文件的加密与解密
- 文件的简单加密与解密(不安全)
- 用openssl对文件加密及解密
- 解密目前DEZEND工具不能够解密的zend加密php文件 如解密出现 [exception occured] 代码溢出问题