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,如果没报错的话就说明启动成功