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.生成密文:
a) cd D:User80002139Downloadsjboss-4.2.3.GA
b) 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
c) 密码password 加密后:5dfc52b51bd35553df8592078de921bc
2.在/app/jboss/jboss-as/server/ALOMS_CORE_CNSZ22_JBOSS_APP_01/conf/login-config.xml文件<policy>标签下加以下:
<application-policy name="security-domain-alomsdb"> <!--oracle-ds.xml security-domain-->
<authentication>
<login-module code="org.jboss.resource.security.SecureIdentityLoginModule" flag="required">
<module-option name = "username">username</module-option>
<module-option name = "password">-1234567890123456789012345677</module-option>
<module-option name="managedConnectionFactoryName">jboss.jca:service=LocalTxCM,name=alomsdb</module-option><!-- oracle-ds.xml jndi-name -->
</login-module>
</authentication>
</application-policy>
3. /app/war/ALOMS_CORE_CNSZ22_JBOSS_APP_01/pkg/oracle-ds.xml文件中加数据源:
<datasources>
<local-tx-datasource>
<jndi-name>alomsdb</jndi-name>
<use-java-context>false</use-java-context>
<connection-url>jdbc:oracle:thin:@alomssit.dbsit.sfdc.com.cn:1521:alomssit</connection-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<security-domain>security-domain-alomsdb</security-domain>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
<metadata>
<type-mapping>Oracle11g</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>