jboss中配置连接池时默认数据库用密码是用明文方式存储,这给数据库的安全带来了一定的风险。
下面介绍如何在jbosscp06下对数据库密码加密。
数据库用户:MYORACLE 密码:TEST
1.制作加密工具a).将以下四个jar拷贝到一个指定的目录中,如D:/pass
D:/jboss-eap-4.3/jboss-as/lib/jboss-common.jar,jboss-jmx.jar
D:/jboss-eap-4.3/jboss-as/server/production/lib/jboss-jca.jar,jbosssx.jar
b)编写encrypt.bat内容为
set CLASSPATH=.;C:/Program Files/Java/jdk1.5.0_07/lib/tools.jar;D:/pass/jboss-common.jar;D:/pass/jboss-jca.jar;D:/pass/jboss-jmx.jar;D:/pass/jbosssx.jar
java org.jboss.resource.security.SecureIdentityLoginModule TEST
3fb2b2b29f74131a
org.jboss.resource.security.SecureIdentityLoginModule 是我们加密的程序
TEST 为要加密的密码
3fb2b2b29f74131a 为加密后输出的结果
2.jboss_home/production/conf/jboss-log4j.xml添加
--testDataSource 是连接池的名称
MYORACLE -- 用户名
3fb2b2b29f74131a --加密后的密码
jboss.jca:service=LocalTxCM,name=testDataSource
3.jboss_home/production/deploy/oracle-ds.xml 配置
testDataSource
jdbc:oracle:thin:@127.0.0.1:1521:orcl
false
oracle.jdbc.OracleDriver
testDataSource(不需要写数据库用户名密码)
org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter
ALTER session set NLS_DATE_FORMAT='YYYY-MM-DD'
5
20
5000
5
Oracle10g
4.重启jboss