TOMCAT 连接池数据库密码加密方法
上一篇 /
下一篇 2008-02-17 18:53:50
/ 个人分类:电脑技术
Tomcat 连接池写在server.xml里的数据用户以及密码都是明文,这样非常不安全的,如果一但知道了这个数据库名和密码获得,可想而知。
Ns'eP)obp
{%L-F0
hL[e2uHI)_Q0那么如何实现对数据库密码加密呢,,因为喜欢开源,接下来就奉献给大家。
最开始的想法是通过tomcat的源码从catalina.java这个加载类开始找,看连接池是如何加载的,然后修改这个类,重新ant。后来发现了连接池用的factory类,决定重这个类开始下手。
如果才能把用户名或者是密码使用加密算法进行加密使用呢,这就需要对Tomcat一般依赖dbcp连接池配置。
http://jakarta.apache.org/commons/dbcp/下载commons-dbcp源码包(一定要对用tomcat的版本),对org.apache.commons.dbcp.BasicDataSourceFactory类修改,把数据库密码字段进行解密程序实现,然后重新用ant工具build这个包,覆盖tomcat\common\lib的对应commons-dbcp.jar包就可以了,加密算法和解密算法网上有很多大家自己选择就可以了。 因为server.xml里配置的password字段已经是经过DESede加密了,如下面配置已经用红色标记出来了,所以在org.apache.commons.dbcp.BasicDataSourceFactory可以直接使用解密程序就ok了,如果你想把加密程序也打到包里,自己做吧。
在配置文件连接池内容如下:<Resource name="jdbc/test" auth="Container"友商社区 fp#\"S.ZIc9{ type="javax.sql.DataSource"/> a!xW$rZ&S0?[0 <ResourceParams name="jdbc/test">友商社区}2bm_P s-w <parameter>友商社区Rch2s` ~Yd <name>factory</name> )AdV,\7PIe @0 <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>友商社区frMTT </parameter>友商社区f4kH,]"~Q#Nc <parameter> 2R$@~k+R} E|"|0 <name>username</name> I)K jt^:K/R*XXR0 <value>test</value> &dS-D+}3~g0 </parameter>
|@KX];`'zp0 <parameter> tXb%ia}R
P0 <name>password</name> hM L4GKz#~D2Bt0 <value>F11C3DA0F79D0F2AE</value> 0a%qo4?8Q0 </parameter>友商社区/e(K8z:],K3lCE^ <parameter> 7@C#}*xG0 <name>driverClassName</name> qUOc&LQ0 <value>oracle.jdbc.driver.OracleDriver</value>友商社区8|%a(r}#jy </parameter> ^4]`R/g8u%?d*@0 <parameter> (}:?x0s K5B0 <name>url</name> Dcy
Ks6iM0 <value>jdbc:oracle:thin:@192.168.0.1:1521:test</value>友商社区H1i5k;MUi:XKn8Yn </parameter> j.GRn?.Mnkq0 <parameter> cJ2Q kar
E;vS0 <name>maxActive</name> W5g
c&K#S+@0 <value>4</value>友商社区D3f(B4r:ua g"{9S </parameter> *J'|"ej UvDIo/`0 <parameter> 7rtY q/u|A0 <name>maxIdle</name>友商社区)C$[JJ)Nu2DN <value>2</value> `oScH I1F9v0 </parameter> U
@ f-bh{:z+r$c0 </ResourceParams> |
导入论坛
引用链接
收藏
分享给好友
推荐到圈子
管理
举报
TAG: