Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2351318
  • 博文数量: 321
  • 博客积分: 3440
  • 博客等级: 中校
  • 技术积分: 2992
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-24 09:08
个人简介

我就在这里

文章分类

全部博文(321)

文章存档

2015年(9)

2014年(84)

2013年(101)

2012年(25)

2011年(29)

2010年(21)

2009年(6)

2008年(23)

2007年(23)

分类: Java

2014-06-02 18:39:36

local-tx-datasource:
最常用的数据源配置,该连接池的连接管理器是LocalTxConnectionManager,只支持本地事务,不适合做分布式事务。
以mssql为例如下:
如果密码按明文配置应该是:
  
    AMSSQLDBJNDI  
    jdbc:JSQLConnect://192.168.101.26:1433/database=MSSQLDB  
    com.jnetdirect.jsql.JSQLDriver  
    username  
    password  
    50  
    200  
  
  

这种配置当然能完成数据源的配置,但是数据库的密码直接 暴露给了系统的操作员、维护人员,增加了数据库不安全的因素。
但是不用担心,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中的用户名和密码两个节点干掉,加上一个安全域EncryptDBPassword

,这个域载有用户名、密码、数据源的JNDI。
配置后ms-ds.xml文件就变成了现在的样子:
  
     
    AMSSQLDBJNDI  
    jdbc:JSQLConnect://192.168.101.26:1433/database=MSSQLDB  
    com.jnetdirect.jsql.JSQLDriver  
    EncryptDBPassword_1  
    10  
    100  
  
  
  

然后在 修改JBOSS的安全登录配置文件JBOSS_HOME/server/default/conf/login-config.xml
加上一段如下配置
  
          
              
                username  
                5dfc52b51bd35553df8592078de921bc  
                jboss.jca:name=AMSSQLDBJNDI,service=LocalTxCM  
            
  
        
  
   
  
注意managedConnectionFactoryName的配置service一定是LocalTxCM否则JBOSS连接池类厂不能找到对应的连接管理器因为我们上面配置的数据源是本地数据源local-tx-datasource,这个对应关系要一致,否则jboss会报错。其他的对应关系不用我多说了应该都能看懂
,这样一个带有密文密码的数据源配置就OK了。
no-tx-datasource
非事务连接池配置,连接管理器:NoTxConnectionManager不支持事务 
以oracle-ds.xml为例
配置好了应该是
view plaincopy to clipboardprint?
  
   ORACLEDBJNDI  
   jdbc:oracle:thin:@192.168.104.89:1521:orcl  
   oracle.jdbc.driver.OracleDriver  
EncryptDBPassword_2  
20  
   100     
     
   org.jboss.resource.adapter.jdbc.vendor.OracleValidConnectionChecker  
     
   org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter  
  

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

  
          
              
                username  
                -50180a5e987cbf89284eb5fe70fce59  
                jboss.jca:name=ORACLEDBJNDI,service=NoTxCM  
            
  
        
  
   
  

注意manegedConnectionFactoryName的service属性的变化,不再赘言。
然后重启JBOSS server ,debug之。。 没问题! 就这样平民级的jboss连接池配置大功告成了。
参考链接  
              
阅读(3533) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~