Class ConfigFilter

All Implemented Interfaces:
Filter, Wrapper, NotificationBroadcaster, NotificationEmitter

public class ConfigFilter extends FilterAdapter
 这个类主要是负责两个事情, 解密, 和下载远程的配置文件
 [解密]

 DruidDataSource dataSource = new DruidDataSource();
 //dataSource.setXXX 其他设置
 //下面两步很重要
 //启用config filter
 dataSource.setFilters("config");
 //使用RSA解密(使用默认密钥)
 dataSource.setConnectionPropertise("config.decrypt=true");
 dataSource.setPassword("加密的密文");

 [远程配置文件]
 DruidDataSource dataSource = new DruidDataSource();
 //下面两步很重要
 //启用config filter
 dataSource.setFilters("config");
 //使用RSA解密(使用默认密钥)
 dataSource.setConnectionPropertise("config.file=http://localhost:8080/remote.propreties;");

 [Spring的配置解密]

 <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
     <property name="password" value="加密的密文" />
     <!-- 其他的属性设置 -->
     <property name="filters" value="config" />
     <property name="connectionProperties" value="config.decrypt=true" />
 </bean>

 [Spring的配置远程配置文件]

 <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
     <property name="filters" value="config" />
     <property name="connectionProperties" value="config.file=http://localhost:8080/remote.propreties; />
 </bean>

 [使用系统属性配置远程文件]
 java -Ddruid.config.file=file:///home/test/my.properties ...

 远程配置文件格式:
 1. 其他的属性KEY请查看 @see com.alibaba.druid.pool.DruidDataSourceFactory
 2. config filter 相关设置:
 #远程文件路径
 config.file=http://xxxxx(http://开头或者file:开头)

 #RSA解密, Key不指定, 使用默认的
 config.decrypt=true
 config.decrypt.key=密钥字符串
 config.decrypt.keyFile=密钥文件路径
 config.decrypt.x509File=证书路径

 
Author:
Jonas Yang