springboot 配置檔案資料庫地址加密
阿新 • • 發佈:2019-01-08
最近在重構一個架構,因為專案是對接手機端應用,所以選用了springboot ,但是想到配置檔案中的地址不可以暴露在伺服器上的
參考部落格https://blog.csdn.net/sz85850597/article/details/80396321
引入依賴
<!--jasypt 配置檔案資料加密依賴--> <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.0.0</version> </dependency>
因為配置檔案
@Configuration public class EncryptionPropertyConfig { @Bean(name="encryptablePropertyResolver") public EncryptablePropertyResolver encryptablePropertyResolver() { return new EncryptionPropertyResolver(); } class EncryptionPropertyResolver implements EncryptablePropertyResolver { @Override public String resolvePropertyValue(String value) { if(StringUtils.isBlank(value)) { return value; } // 值以
[email protected]開頭的均為DES加密,需要解密 if(value.startsWith("[email protected]")) { return resolveDESValue(value.substring(11)); } // 不需要解密的值直接返回 return value; } private String resolveDESValue(String value) { // 自定義DES密文解密 String decode=""; try{ decode = DESCode.decode(value); }catch (Exception e){ e.printStackTrace(); System.out.println("解密失敗!:"+ value); } System.out.println("value :"+value +" :"+decode); return decode; } } }
我再配置檔案中用到的是DESC 加密方式,所以呢,你可以配置自己的解密方式進行解密
你也可以自己定義配置檔案能的加密好的字串的開頭形式
把你自己加密好的串放到配置檔案當中就可以了(如圖例子),啟動專案會自動讀取進行解密並配置,無需其他操作
完!