本文實(shí)例為大家分享了Spring加載加密的配置文件,供大家參考,具體內(nèi)容如下
一、繼承并實(shí)現(xiàn)自己的屬性文件配置器類
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屬性配置文件擴(kuò)展類 * 加密方式: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== |
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。