`
JAVA天地
  • 浏览: 661939 次
  • 性别: Icon_minigender_1
  • 来自: 太原
文章分类
社区版块
存档分类
最新评论

TOMCAT 连接池数据库密码加密方法

阅读更多

原文来自:http://club.youshang.com/173/viewspace-1701,因为我觉得作者讲解不太详细,我把后面给去掉,保留了作者的前半部份。

Tomcat连接池写在server.xml里的数据用户以及密码都是明文,这样非常不安全的,如果一但知道了这个数据库名和密码获得,可想而知。

那么如何实现对数据库密码加密呢,,因为喜欢开源,接下来就奉献给大家。

最开始的想法是通过tomcat的源码从catalina.java这个加载类开始找,看连接池是如何加载的,然后修改这个类,重新ant。后来发现了连接池用的factory类,决定重这个类开始下手。

如果才能把用户名或者是密码使用加密算法进行加密使用呢,这就需要对Tomcat一般依赖dbcp连接池配置。

http://jakarta.apache.org/commons/dbcp/下载commons-dbcp源码包(一定要对用tomcat的版本),对org.apache.commons.dbcp.BasicDataSourceFactory类修改,根据"PROP_PASSWORD"RA找到如下:

value=properties.getProperty(PROP_PASSWORD);

if(value!=null){

dataSource.setPassword(value);

}

可以看得出来就是将配置文件中取出的密码,进行赋值给相关变量了,这个时候把准备好的加密码文件加进去,如我的加密码JAVA为Encode.java,将这个文件放在这个包下面,但要保证该Encode.java最好不引用除J2SE以外的其它包,否则还得把包给加进去,我这里改成:

value=properties.getProperty(PROP_PASSWORD);

if(value!=null){

dataSource.setPassword(Encode.decode(value));

}

就表示对从数据源配置中取过来的密码进行解密了,这个时候可见数据源配置中密码如下:

<parameter>

<name>password</name>

<value>1f65866187612115</value><!--原为123456-->

</parameter>

当然这里的密码是采用上面提到的Encode.java的encode进行加密码的,与decode是可逆的,这样才可以正确解密。

另外说明一下,从官方网站下载下来的源程序,采用ANT并不一定可以直接编译,我这里就是这种情况,编译的时候把错,将其导入ECLIPSE工程中,并加入相关POOL包,通过ANT也编译不过去,我猜想可能是ANT版本的原因,因为后面的我把"工程->自动编译..."给勾上后,自动编译过去,将这两个类BasicDataSourceFactory和Encode拷贝出来,将原来的包用WINRAR打开,放到其路径中。另外这外commons-dbcp-1.2.2.jar放到server/lib下面不行,至少我这边就不行,我的TOMCAT是5.0,我前面一直在这里找这个包都没有找到,但是我看数据源却是采用的BasicDataSourceFactory,后来动用了UE才搜索出来,原来在common的lib下面,将其拷贝进去,重启TOMCAT登陆,OK。

<!--EndFragment-->
分享到:
评论

相关推荐

    tomcat_连接池数据库密码加密解密方法

    详细讲解tomcat 连接池数据库解密加密方法以及过程。

    AES256 加密 解密 Tomcat连接池数据库密码加密

    使用AES256加密技术实现tomcat7对连接池数据库密码加密解密,资源中包含加密小程序,小程序实现加密,tomcat中实现解密,方便客户自己修改数据库密码且是密文!

    AES256 加密 解密 Tomcat连接池数据库密码加密_1

    使用AES256加密技术实现tomcat7对连接池数据库密码加密解密,资源中包含加密小程序,小程序实现加密,tomcat中实现解密,方便客户自己修改数据库密码且是密文!支持多操作系统如:linux mac os 文件太多分成两部分请...

    使用Tomcat-5_5_20配置数据库连接池详细介绍

    使用Tomcat-5_5_20配置数据库连接池详细介绍 步骤很详细

    高性能的分布式数据库连接池clearpool.zip

    能够加密配置文件中的数据库密码。  关于clearpool的详细介绍请参考博客:http://my.oschina.net/xionghui/blog/304561。 clearpool和druid、tomcat-jdbc的性能比较如下图: clearpool和...

    JAVA高并发高性能高可用高扩展架构视频教程

    高并发复用数据库链接技术详解之数据库连接池 类加载器的高级特性(自定义类加器实现加密解密) iBATIS开源主流框架(实现半自动化hibernate) 企业实用技能之详解(眼睛横纹模式验证码防止恶意登陆) 动态页面的静态化...

    基于JavaWeb的期刊管理系统+课设报告.zip

    Druid数据库连接池 2. QueryRunner 3. commons beanUtils 4. commons dbUtils 5. commons fileUpload 6. commons codec 7. commons io 8. java.utils.UUID 9. Gson(google json包) 4. MySql数据库进行存储 ...

    JAVA上百实例源码以及开源项目源代码

    Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密 Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。 设定字符串为“张三,你好,我是李四”...

    基于JAVA+SpringBoot智能交通站务管理系统+项目说明.zip

    (3)、连接池:proxool 0.9.1; (4)、消息队列:ActiveMQ; (5)、接口:Axis2(1.7.9); (6)、接口部署:≥Tomcat8、Jboss等; ###系统特色: (1)、前端界面经典Ribbon样式自适应,外观显示、字体等用户可自定义,win...

    采用jsp+javabean+servlet+mysql(界面美观)

    A. 本留言本采用jsp+javabean+servlet+mysql B. 本系统运行环境: ...6、 此留言本实现了MVC模式,完全是通过servlet控制数据,而且使用了连接池,一些基本的类也是完全提供,对学习jsp的MVC模式有很大的帮助。

    JAVA 范例大全 光盘 资源

    实例196 Tomcat连接池的配置 629 实例197 MySQL数据库的分页形式 633 实例198 连接ODBC数据库的Apple程序 640 第20章 JSP/Servlet技术 644 实例199 JSP与Servlet之间的跳转 644 实例200 简单的JSP多人聊天室 ...

    Java源码 SpringMVC Mybatis Shiro Bootstrap Rest Webservice

    6. 数据库连接池统一配置 7. Quartz定时调度任务集成(直接通过配置即可) 8. Httpclient破解验证码,登陆联通充值平台 9. 汉字、英文拆分、可以用作文档关键字搜索等。 10. Base64图片处理,支持PC,Android,...

    java开源包4

    它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步...

    java开源包1

    它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步...

    java开源包11

    它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步...

    java开源包2

    它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步...

    java开源包3

    它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步...

    java开源包6

    它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步...

    java开源包5

    它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步...

Global site tag (gtag.js) - Google Analytics