我就在这里
分类: Java
2014-06-02 18:39:36
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-jmx.jar;lib/jboss-common.jar;server/default/lib/jboss-jca.jar;server/default/lib/jbosssx.jar" org.jboss.resource.security.SecureIdentityLoginModule password 得出的加密串为一个16进制数据:5dfc52b51bd35553df8592078de921bc 到这里你可能问该怎么操作才能让jboss识别这个加密后的密码呢?? 我们把local-tx-datasource中的用户名和密码两个节点干掉,加上一个安全域 ,这个域载有用户名、密码、数据源的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为例 配置好了应该是 view plaincopy to clipboardprint? 同样在login-config中增加一段安全密码登陆的安全域 注意manegedConnectionFactoryName的service属性的变化,不再赘言。 然后重启JBOSS server ,debug之。。 没问题! 就这样平民级的jboss连接池配置大功告成了。 参考链接 |