Jboss配置之数据源密码配置密文--EncryptingDataSourcePasswords

本文介绍了如何在JBoss AS 4.2.2 GA中配置local-tx-datasource和no-tx-datasource,包括使用SecureIdentityLoginModule对数据库密码进行加密的方法,确保了数据源的安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OS:linux centoS

Jdk:5

JbossAS:4.2.2GA

  • local-tx-datasource:

最常用的数据源配置,该连接池的连接管理器是LocalTxConnectionManager,只支持本地事务,不适合做分布式事务。

以mssql为例如下:

如果密码按明文配置应该是:

 

这种配置当然能完成数据源的配置,但是数据库的密码直接 暴露给了系统的操作员、维护人员,增加了数据库不安全的因素。

但是不用担心,jboss本身提供了对密码进行加密的工具org.jboss.resource.security.SecureIdentityLoginModule

操作方法:进入JBOSS_HOME 然后按classpath 执行这个加密工具就ok了

1、cd /usr/local/Jboss-4.2.2GA

2、java -cp lib/jboss-common.jar:lib/jboss-jmx.jar:server/default/lib/jbosssx.jar:server/default/lib/jboss-jca.jar org.jboss.resource.security.SecureIdentityLoginModule password
得出的加密串为一个16进制数据:5dfc52b51bd35553df8592078de921bc

到这里你可能问该怎么操作才能让jboss识别这个加密后的密码呢??

我们把local-tx-datasource中的用户名和密码两个节点干掉,加上一个安全域<security-domain>EncryptDBPassword</security-domain>

,这个域载有用户名、密码、数据源的JNDI。

配置后ms-ds.xml文件就变成了现在的样子:

然后在 修改JBOSS的安全登录配置文件JBOSS_HOME/server/default/conf/login-config.xml

加上一段如下配置

注意managedConnectionFactoryName的配置service一定是LocalTxCM否则JBOSS连接池类厂不能找到对应的连接管理器因为我们上面配置的数据源是本地数据源local-tx-datasource,这个对应关系要一致,否则jboss会报错。其他的对应关系不用我多说了应该都能看懂

,这样一个带有密文密码的数据源配置就OK了。

  • no-tx-datasource

非事务连接池配置,连接管理器:NoTxConnectionManager不支持事务

以oracle-ds.xml为例

配置好了应该是

同样在login-config中增加一段安全密码登陆的安全域

注意manegedConnectionFactoryName的service属性的变化,不再赘言。

然后重启JBOSS server ,debug之。。 没问题! 就这样平民级的jboss连接池配置大功告成了。

参考链接  http://www.jboss.org/community/wiki/EncryptingDataSourcePasswords

              http://www.jboss.org/community/wiki/IGetTheErrorSpecifiedInAConfiguredIdentityLoginModuleCouldNotBeFoundConnectionFactoryWillBeUnusable

 

有兴趣的同学可以一起深入探讨下。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值