本文实例为大家分享了Spring加载加密的配置文件,供大家参考,具体内容如下
一、继承并实现自己的属性文件配置器类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
/**
* 带加密的Spring属性配置文件扩展类
* 加密方式:AES
* @author simon
*
*/
public class EncryptPropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer {
//指定需要加密的属性
private String[] propertyNames = { "db.password" };
/**
* 解密指定propertyName的属性值
* @param propertyName
* @param propertyValue
* @return
*/
@Override
protected String convertProperty(String propertyName, String propertyValue) {
//过滤出需要解密的属性
for (String p : propertyNames) {
if (p.equalsIgnoreCase(propertyName)) {
try {
//返回AES解密后的字符串
return new String(SymmetricCryptoUtil.decryptAESWithDefaultKey(EncodeUtil.decodeBase64(propertyValue)));
} catch (Exception e) {
e.printStackTrace();
}
}
}
return super .convertProperty(propertyName, propertyValue);
}
}
|
二、Spring中配置以自定义的属性文件配置器类来加载加密后的配置文件
1
2
3
4
5
6
7
8
|
<!-- 加载加密后的配置文件 -->
< bean class = "com.bounter.mybatis.extension.EncryptPropertyPlaceholderConfigurer" >
< property name = "locations" >
< list >
< value >classpath:db.properties</ value >
</ list >
</ property >
</ bean >
|
三、将配置文件中的特殊属性用相同的算法和密钥加密
1
2
3
4
5
|
db.driver=
db.url=
db.username=root
#AES encrypt,Base64 encode
db.password=jFYmt2f57RHhzItYDhWiSA==
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。