本文實(shí)例為大家分享了Spring加載加密的配置文件,供大家參考,具體內(nèi)容如下
創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),宿遷企業(yè)網(wǎng)站建設(shè),宿遷品牌網(wǎng)站建設(shè),網(wǎng)站定制,宿遷網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,宿遷網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
一、繼承并實(shí)現(xiàn)自己的屬性文件配置器類
/** * 帶加密的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中配置以自定義的屬性文件配置器類來加載加密后的配置文件
classpath:db.properties
三、將配置文件中的特殊屬性用相同的算法和密鑰加密
db.driver= db.url= db.username=root #AES encrypt,Base64 encode db.password=jFYmt2f57RHhzItYDhWiSA==
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。