日期:2014-05-16  浏览次数:20617 次

TOMCAT 连接池数据库密码加密解密的方法
Tomcat 连接池写在server.xml里的数据用户以及密码都是明文,这样非常不安全的.最近看了网上一些关于TOMCAT 连接池数据库密码加密方法,感觉写的都不是很详细,自己研究了下,有些心得,写出来和大家共享一下. 首先,先去http://commons.apache.org/dbcp/ 下载commons-dbcp源码包,我下载的版本是1.2.2。commons-dbcp源码包要编译的话需要commons-pool,所以也要顺便下载commons-pool源码包,我下载的是1.4版本。我tomcat用的版本是Tomcat5.5.等下需要修改tomcat目录下的common\libnaming-factory-dbcp.jar. 上网搜索一段加解密的程序,将数据库密码的字段进行加密,获得密文.手动配置tomcat的连接池,注意连接池的password配置密文. 找到刚才下载的commons-dbcp源码包解压,找到BasicDataSourceFactory.java,这个类中PROP_PASSWORD会和连接池的password取得联系,所以现在要将他解密处理,修改这个BasicDataSourceFactory.java中的 value = properties.getProperty(PROP_PASSWORD); if (value != null) { dataSource.setPassword(value); } 将PROP_PASSWORD进行解密处理,处理完保存后.然后再doc下ant commons-dbcp的build.xml进行编译.再将编译后的dbcp文件放在tomcat的naming-factory-dbcp.jar里,替换他原来的dbcp文件. (编译commons-dbcp文件的时候要注意dbcp里的那些java的package和tomcat的naming-factory-dbcp.jar的dbcp路径要相符合,要不启动tomcat他会报找不到BasicDataSourceFactory.class) 启动tomcat,如果没报错的话就说明启动成功
1 楼 titanfoot 2008-06-24  
赫赫,这种方法不值得推广,适用范围很窄!
2 楼 hong608608 2008-06-24  
不怕了,本文献给有需要的朋友~~~~~~
3 楼 lanmengxiaozi 2008-06-24  
好像用处不大,嘿嘿
4 楼 spiritfrog 2008-06-27  
天啊,这格式,都懒的看了。
5 楼 fcoffee 2008-07-26  
为什么不 extends BasicDataSource 然后覆盖 setPassword(String passwd) 方法呢?