亲宝软件园·资讯

展开

Spring加载加密的配置文件 Spring加载加密的配置文件详解

二十六度半 人气:0
想了解Spring加载加密的配置文件详解的相关内容吗,二十六度半在本文为您仔细讲解Spring加载加密的配置文件的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:Spring,加载,加密,配置文件,下面大家一起来学习吧。


一、继承并实现自己的属性文件配置器类

/**
 * 带加密的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中配置以自定义的属性文件配置器类来加载加密后的配置文件

<!-- 加载加密后的配置文件 -->
<bean class="com.bounter.mybatis.extension.EncryptPropertyPlaceholderConfigurer">
 <property name="locations">
 <list>
  <value>classpath:db.properties</value>
 </list>
 </property>
</bean>


三、将配置文件中的特殊属性用相同的算法和密钥加密

db.driver=
db.url=
db.username=root
#AES encrypt,Base64 encode
db.password=jFYmt2f57RHhzItYDhWiSA==

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

加载全部内容

相关教程
猜你喜欢
用户评论