com.alibaba.druid.filter.config
Class ConfigFilter

java.lang.Object
  extended by javax.management.NotificationBroadcasterSupport
      extended by com.alibaba.druid.filter.FilterAdapter
          extended by com.alibaba.druid.filter.config.ConfigFilter
All Implemented Interfaces:
Filter, 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

Field Summary
static String CONFIG_DECRYPT
           
static String CONFIG_FILE
           
static String CONFIG_KEY
           
static String SYS_PROP_CONFIG_DECRYPT
           
static String SYS_PROP_CONFIG_FILE
           
static String SYS_PROP_CONFIG_KEY
           
 
Constructor Summary
ConfigFilter()
           
 
Method Summary
 void decrypt(DruidDataSource dataSource, Properties info)
           
 PublicKey getPublicKey(Properties connectinProperties, Properties configFileProperties)
           
 void init(DataSourceProxy dataSourceProxy)
           
 boolean isDecrypt(Properties connectinProperties, Properties configFileProperties)
           
 Properties loadConfig(String filePath)
           
 
Methods inherited from class com.alibaba.druid.filter.FilterAdapter
callableStatement_getArray, callableStatement_getArray, callableStatement_getBigDecimal, callableStatement_getBigDecimal, callableStatement_getBigDecimal, callableStatement_getBlob, callableStatement_getBlob, callableStatement_getBoolean, callableStatement_getBoolean, callableStatement_getByte, callableStatement_getByte, callableStatement_getBytes, callableStatement_getBytes, callableStatement_getCharacterStream, callableStatement_getCharacterStream, callableStatement_getClob, callableStatement_getClob, callableStatement_getDate, callableStatement_getDate, callableStatement_getDate, callableStatement_getDate, callableStatement_getDouble, callableStatement_getDouble, callableStatement_getFloat, callableStatement_getFloat, callableStatement_getInt, callableStatement_getInt, callableStatement_getLong, callableStatement_getLong, callableStatement_getNCharacterStream, callableStatement_getNCharacterStream, callableStatement_getNClob, callableStatement_getNClob, callableStatement_getNString, callableStatement_getNString, callableStatement_getObject, callableStatement_getObject, callableStatement_getObject, callableStatement_getObject, callableStatement_getRef, callableStatement_getRef, callableStatement_getRowId, callableStatement_getRowId, callableStatement_getShort, callableStatement_getShort, callableStatement_getSQLXML, callableStatement_getSQLXML, callableStatement_getString, callableStatement_getString, callableStatement_getTime, callableStatement_getTime, callableStatement_getTime, callableStatement_getTime, callableStatement_getTimestamp, callableStatement_getTimestamp, callableStatement_getTimestamp, callableStatement_getTimestamp, callableStatement_getURL, callableStatement_getURL, callableStatement_registerOutParameter, callableStatement_registerOutParameter, callableStatement_registerOutParameter, callableStatement_registerOutParameter, callableStatement_registerOutParameter, callableStatement_registerOutParameter, callableStatement_setAsciiStream, callableStatement_setAsciiStream, callableStatement_setAsciiStream, callableStatement_setBigDecimal, callableStatement_setBinaryStream, callableStatement_setBinaryStream, callableStatement_setBinaryStream, callableStatement_setBlob, callableStatement_setBlob, callableStatement_setBlob, callableStatement_setBoolean, callableStatement_setByte, callableStatement_setBytes, callableStatement_setCharacterStream, callableStatement_setCharacterStream, callableStatement_setCharacterStream, callableStatement_setClob, callableStatement_setClob, callableStatement_setClob, callableStatement_setDate, callableStatement_setDate, callableStatement_setDouble, callableStatement_setFloat, callableStatement_setInt, callableStatement_setLong, callableStatement_setNCharacterStream, callableStatement_setNCharacterStream, callableStatement_setNClob, callableStatement_setNClob, callableStatement_setNClob, callableStatement_setNString, callableStatement_setNull, callableStatement_setNull, callableStatement_setObject, callableStatement_setObject, callableStatement_setObject, callableStatement_setRowId, callableStatement_setShort, callableStatement_setSQLXML, callableStatement_setString, callableStatement_setTime, callableStatement_setTime, callableStatement_setTimestamp, callableStatement_setTimestamp, callableStatement_setURL, callableStatement_wasNull, clob_free, clob_getAsciiStream, clob_getCharacterStream, clob_getCharacterStream, clob_getSubString, clob_length, clob_position, clob_position, clob_setAsciiStream, clob_setCharacterStream, clob_setString, clob_setString, clob_truncate, connection_clearWarnings, connection_close, connection_commit, connection_connect, connection_createArrayOf, connection_createBlob, connection_createClob, connection_createNClob, connection_createSQLXML, connection_createStatement, connection_createStatement, connection_createStatement, connection_createStruct, connection_getAutoCommit, connection_getCatalog, connection_getClientInfo, connection_getClientInfo, connection_getHoldability, connection_getMetaData, connection_getTransactionIsolation, connection_getTypeMap, connection_getWarnings, connection_isClosed, connection_isReadOnly, connection_isValid, connection_nativeSQL, connection_prepareCall, connection_prepareCall, connection_prepareCall, connection_prepareStatement, connection_prepareStatement, connection_prepareStatement, connection_prepareStatement, connection_prepareStatement, connection_prepareStatement, connection_releaseSavepoint, connection_rollback, connection_rollback, connection_setAutoCommit, connection_setCatalog, connection_setClientInfo, connection_setClientInfo, connection_setHoldability, connection_setReadOnly, connection_setSavepoint, connection_setSavepoint, connection_setTransactionIsolation, connection_setTypeMap, dataSource_getConnection, dataSource_releaseConnection, destory, isWrapperFor, preparedStatement_addBatch, preparedStatement_clearParameters, preparedStatement_execute, preparedStatement_executeQuery, preparedStatement_executeUpdate, preparedStatement_getMetaData, preparedStatement_getParameterMetaData, preparedStatement_setArray, preparedStatement_setAsciiStream, preparedStatement_setAsciiStream, preparedStatement_setAsciiStream, preparedStatement_setBigDecimal, preparedStatement_setBinaryStream, preparedStatement_setBinaryStream, preparedStatement_setBinaryStream, preparedStatement_setBlob, preparedStatement_setBlob, preparedStatement_setBlob, preparedStatement_setBoolean, preparedStatement_setByte, preparedStatement_setBytes, preparedStatement_setCharacterStream, preparedStatement_setCharacterStream, preparedStatement_setCharacterStream, preparedStatement_setClob, preparedStatement_setClob, preparedStatement_setClob, preparedStatement_setDate, preparedStatement_setDate, preparedStatement_setDouble, preparedStatement_setFloat, preparedStatement_setInt, preparedStatement_setLong, preparedStatement_setNCharacterStream, preparedStatement_setNCharacterStream, preparedStatement_setNClob, preparedStatement_setNClob, preparedStatement_setNClob, preparedStatement_setNString, preparedStatement_setNull, preparedStatement_setNull, preparedStatement_setObject, preparedStatement_setObject, preparedStatement_setObject, preparedStatement_setRef, preparedStatement_setRowId, preparedStatement_setShort, preparedStatement_setSQLXML, preparedStatement_setString, preparedStatement_setTime, preparedStatement_setTime, preparedStatement_setTimestamp, preparedStatement_setTimestamp, preparedStatement_setUnicodeStream, preparedStatement_setURL, resultSet_absolute, resultSet_afterLast, resultSet_beforeFirst, resultSet_cancelRowUpdates, resultSet_clearWarnings, resultSet_close, resultSet_deleteRow, resultSet_findColumn, resultSet_first, resultSet_getArray, resultSet_getArray, resultSet_getAsciiStream, resultSet_getAsciiStream, resultSet_getBigDecimal, resultSet_getBigDecimal, resultSet_getBigDecimal, resultSet_getBigDecimal, resultSet_getBinaryStream, resultSet_getBinaryStream, resultSet_getBlob, resultSet_getBlob, resultSet_getBoolean, resultSet_getBoolean, resultSet_getByte, resultSet_getByte, resultSet_getBytes, resultSet_getBytes, resultSet_getCharacterStream, resultSet_getCharacterStream, resultSet_getClob, resultSet_getClob, resultSet_getConcurrency, resultSet_getCursorName, resultSet_getDate, resultSet_getDate, resultSet_getDate, resultSet_getDate, resultSet_getDouble, resultSet_getDouble, resultSet_getFetchDirection, resultSet_getFetchSize, resultSet_getFloat, resultSet_getFloat, resultSet_getHoldability, resultSet_getInt, resultSet_getInt, resultSet_getLong, resultSet_getLong, resultSet_getMetaData, resultSet_getNCharacterStream, resultSet_getNCharacterStream, resultSet_getNClob, resultSet_getNClob, resultSet_getNString, resultSet_getNString, resultSet_getObject, resultSet_getObject, resultSet_getObject, resultSet_getObject, resultSet_getRef, resultSet_getRef, resultSet_getRow, resultSet_getRowId, resultSet_getRowId, resultSet_getShort, resultSet_getShort, resultSet_getSQLXML, resultSet_getSQLXML, resultSet_getStatement, resultSet_getString, resultSet_getString, resultSet_getTime, resultSet_getTime, resultSet_getTime, resultSet_getTime, resultSet_getTimestamp, resultSet_getTimestamp, resultSet_getTimestamp, resultSet_getTimestamp, resultSet_getType, resultSet_getUnicodeStream, resultSet_getUnicodeStream, resultSet_getURL, resultSet_getURL, resultSet_getWarnings, resultSet_insertRow, resultSet_isAfterLast, resultSet_isBeforeFirst, resultSet_isClosed, resultSet_isFirst, resultSet_isLast, resultSet_last, resultSet_moveToCurrentRow, resultSet_moveToInsertRow, resultSet_next, resultSet_previous, resultSet_refreshRow, resultSet_relative, resultSet_rowDeleted, resultSet_rowInserted, resultSet_rowUpdated, resultSet_setFetchDirection, resultSet_setFetchSize, resultSet_updateArray, resultSet_updateArray, resultSet_updateAsciiStream, resultSet_updateAsciiStream, resultSet_updateAsciiStream, resultSet_updateAsciiStream, resultSet_updateAsciiStream, resultSet_updateAsciiStream, resultSet_updateBigDecimal, resultSet_updateBigDecimal, resultSet_updateBinaryStream, resultSet_updateBinaryStream, resultSet_updateBinaryStream, resultSet_updateBinaryStream, resultSet_updateBinaryStream, resultSet_updateBinaryStream, resultSet_updateBlob, resultSet_updateBlob, resultSet_updateBlob, resultSet_updateBlob, resultSet_updateBlob, resultSet_updateBlob, resultSet_updateBoolean, resultSet_updateBoolean, resultSet_updateByte, resultSet_updateByte, resultSet_updateBytes, resultSet_updateBytes, resultSet_updateCharacterStream, resultSet_updateCharacterStream, resultSet_updateCharacterStream, resultSet_updateCharacterStream, resultSet_updateCharacterStream, resultSet_updateCharacterStream, resultSet_updateClob, resultSet_updateClob, resultSet_updateClob, resultSet_updateClob, resultSet_updateClob, resultSet_updateClob, resultSet_updateDate, resultSet_updateDate, resultSet_updateDouble, resultSet_updateDouble, resultSet_updateFloat, resultSet_updateFloat, resultSet_updateInt, resultSet_updateInt, resultSet_updateLong, resultSet_updateLong, resultSet_updateNCharacterStream, resultSet_updateNCharacterStream, resultSet_updateNCharacterStream, resultSet_updateNCharacterStream, resultSet_updateNClob, resultSet_updateNClob, resultSet_updateNClob, resultSet_updateNClob, resultSet_updateNClob, resultSet_updateNClob, resultSet_updateNString, resultSet_updateNString, resultSet_updateNull, resultSet_updateNull, resultSet_updateObject, resultSet_updateObject, resultSet_updateObject, resultSet_updateObject, resultSet_updateRef, resultSet_updateRef, resultSet_updateRow, resultSet_updateRowId, resultSet_updateRowId, resultSet_updateShort, resultSet_updateShort, resultSet_updateSQLXML, resultSet_updateSQLXML, resultSet_updateString, resultSet_updateString, resultSet_updateTime, resultSet_updateTime, resultSet_updateTimestamp, resultSet_updateTimestamp, resultSet_wasNull, statement_addBatch, statement_cancel, statement_clearBatch, statement_clearWarnings, statement_close, statement_execute, statement_execute, statement_execute, statement_execute, statement_executeBatch, statement_executeQuery, statement_executeUpdate, statement_executeUpdate, statement_executeUpdate, statement_executeUpdate, statement_getConnection, statement_getFetchDirection, statement_getFetchSize, statement_getGeneratedKeys, statement_getMaxFieldSize, statement_getMaxRows, statement_getMoreResults, statement_getMoreResults, statement_getQueryTimeout, statement_getResultSet, statement_getResultSetConcurrency, statement_getResultSetHoldability, statement_getResultSetType, statement_getUpdateCount, statement_getWarnings, statement_isClosed, statement_isPoolable, statement_setCursorName, statement_setEscapeProcessing, statement_setFetchDirection, statement_setFetchSize, statement_setMaxFieldSize, statement_setMaxRows, statement_setPoolable, statement_setQueryTimeout, unwrap
 
Methods inherited from class javax.management.NotificationBroadcasterSupport
addNotificationListener, getNotificationInfo, removeNotificationListener, removeNotificationListener, sendNotification
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CONFIG_FILE

public static final String CONFIG_FILE
See Also:
Constant Field Values

CONFIG_DECRYPT

public static final String CONFIG_DECRYPT
See Also:
Constant Field Values

CONFIG_KEY

public static final String CONFIG_KEY
See Also:
Constant Field Values

SYS_PROP_CONFIG_FILE

public static final String SYS_PROP_CONFIG_FILE
See Also:
Constant Field Values

SYS_PROP_CONFIG_DECRYPT

public static final String SYS_PROP_CONFIG_DECRYPT
See Also:
Constant Field Values

SYS_PROP_CONFIG_KEY

public static final String SYS_PROP_CONFIG_KEY
See Also:
Constant Field Values
Constructor Detail

ConfigFilter

public ConfigFilter()
Method Detail

init

public void init(DataSourceProxy dataSourceProxy)
Specified by:
init in interface Filter
Overrides:
init in class FilterAdapter

isDecrypt

public boolean isDecrypt(Properties connectinProperties,
                         Properties configFileProperties)

decrypt

public void decrypt(DruidDataSource dataSource,
                    Properties info)

getPublicKey

public PublicKey getPublicKey(Properties connectinProperties,
                              Properties configFileProperties)

loadConfig

public Properties loadConfig(String filePath)


Copyright © 2012 Alibaba Group. All Rights Reserved.