欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-11-21 09:19:40
本文实例为大家分享了spring加载加密的配置文件,供大家参考,具体内容如下 一、继承并实现自己的属性文件配置器类 /** * 带加密的spring属性...

本文实例为大家分享了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==

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