1. 加密,用以下命令將用戶名和密碼加密
cmd命令行執行 java -cp D:/druid-1.0.13.jar com.alibaba.druid.filter.config.ConfigTools 用戶名/密碼
得到密文:
f0PSl0Lzxh6CxzuFIdEg+wVx045fSE2VtUP45G9HH2cjVQnmGGgcK5CLzNUJoR6tGwRO44h74OxrBWuDzWC8jg==
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <property name="url" value="jdbc:derby:memory:spring-test;create=true" /> <property name="username" value="sa" /> <property name="password" value="${password}" /> <property name="filters" value="config" /> <property name="connectionProperties" value="config.decrypt=true;config.decrypt.key=${publickey}" /> </bean>
2 數據庫密碼加密
數據庫密碼直接寫在配置中,對運維安全來說,是一個很大的挑戰。Druid為此提供一種數據庫密碼加密的手段ConfigFilter。
2.1 執行命令加密數據庫密碼
在命令行中執行如下命令:
java -cp druid-0.2.23.jar com.alibaba.druid.filter.config.ConfigTools you_password
輸出
h9gzp23dkJIZ95Xzj/waxsC2oJ1JoWTh76o4aw7+uGGh63ovAULVOrPewOwHP5i3LCIXqNyvpxJ2nceDFBbzVw==
輸入你的數據庫密碼,輸出的是加密后的結果。
2.2 配置數據源,提示Druid數據源需要對數據庫密碼進行解密。
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <property name="url" value="jdbc:derby:memory:spring-test;create=true" /> <property name="username" value="sa" /> <property name="password" value="h9gzp23dkJIZ95Xzj/waxsC2oJ1JoWTh76o4aw7+uGGh63ovAULVOrPewOwHP5i3LCIXqNyvpxJ2nceDFBbzVw==" /> <property name="filters" value="config" /> <property name="connectionProperties" value="config.decrypt=true" /> </bean>
參考文獻:http://my.oschina.net/u/724133/blog/299362
http://my.oschina.net/ydsakyclguozi/blog/511997