Spring加载加密的配置文件详解
程序员文章站
2023-12-11 08:03:28
本文实例为大家分享了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==
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。