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:\User\80002139\Downloads\jboss-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>