在 JBoss 下配置 Oracle 数据源

1.将%JBOSS_HOME%\docs\examples\jca\oracle-ds.xml复制到%JBOSS_HOME%\server\default\deploy目录下。

2.打开oracle-ds.xml,做如下编辑:

修改jndi<jndi-name>OracleDS</jndi-name>

修改url<connection-url>jdbc:oracle:thin:@localhost:1521:orcl</connection-url>

修改驱动<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>

修改用户名和密码<user-name>root</user-name><password>123456</password>

<?xmlversion=”1.0″encoding=”UTF-8″?>

<datasources>

<local-tx-datasource>

<jndi-name>OracleDS</jndi-name>//jndi名字

<use-java-context>false</use-java-context>

<connection-url>jdbc:oracle:thin:@localhost:1521:orcl</connection-url>//URL地址

<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>//驱动

<user-name>root</user-name>//用户名

<password>123456</password>//密码

<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter

</exception-sorter-class-name>

<metadata>

<type-mapping>Oracle9i</type-mapping>

</metadata>

<min-pool-size>10</min-pool-size>

<max-pool-size>30</max-pool-size>

<blocking-timeout-millis>60000</blocking-timeout-millis>

<idle-timeout-minutes>2</idle-timeout-minutes>

<new-connection-sql>SELECTCOUNT(*)FROMdual</new-connection-sql>

<check-valid-connection-sql>SELECTCOUNT(*)FROMdual</check-valid-connection-sql>

</local-tx-datasource>

</local-tx-datasource>

</datasources>

3.打开%JBOSS_HOME%\server\default\conf\standardjbosscmp-jdbc.xml并编辑:

<jbosscmp-jdbc>

<defaults>

<datasource>java:/DefaultDS</datasource>

……

</defaults>

……

</jbosscmp-jdbc>

4.打开%JBOSS_HOME%\server\default\conf\login-config.xml,将如下内容复制到文件最后:

<application-policyname=“OracleDbRealm”>

<authentication>

<login-modulecode=“org.jboss.resource.security.ConfiguredIdentityLoginModule”flag=“required”>

<module-optionname=“principal”>OracleDS</module-option>

<module-optionname=“userName”>root</module-option>

<module-optionname=“password”>123456</module-option>

<module-optionname=“managedConnectionFactoryName”>

jboss.jca:service=LocalTxCM,name=OracleDS

</module-option>

</login-module>

</authentication>

</application-policy>

5.将Oracle驱动程序复制到%JBOSS_HOME%\server\default\lib目录下。

以上的5步操作,完成了JBoss基本的数据源配置,但配置文件中有密码的明码,存在安全隐患。所以请使用如下的方法对密码进行加密的配置:

1.生成加密密码:

进入dos命令行模式

SetJBOSS_HOME环境变量

执行如下命令:

java-cp%JBOSS_HOME%\lib\jboss-jmx.jar;%JBOSS_HOME%\lib\jboss-common.jar;%JBOSS_HOME%\server\default\lib\jboss-jca.jar;%JBOSS_HOME%\server\default\lib\jbosssx.jarorg.jboss.resource.security.SecureIdentityLoginModule123456

生成123456的加密密码为:64c5fd2979a86168

2.修改%JBOSS_HOME%\server\default\deploy\oracle-ds.xml文件:

<?xmlversion=”1.0″encoding=”UTF-8″?>

<datasources>

<local-tx-datasource>

<jndi-name>OracleDS</jndi-name>

<use-java-context>false</use-java-context>

<connection-url>jdbc:oracle:thin:@localhost:1521:orcl</connection-url>

<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>

<security-domain>EncryptDBPassword</security-domain>//这里不用写上你的用户名与密码了,我们可以在login-config.xml里做点手脚,就OK了

<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>

<metadata>

<type-mapping>Oracle9i</type-mapping>

</metadata>

<min-pool-size>10</min-pool-size>

<max-pool-size>30</max-pool-size>

<blocking-timeout-millis>60000</blocking-timeout-millis>

<idle-timeout-minutes>2</idle-timeout-minutes>

<new-connection-sql>SELECTCOUNT(*)FROMdual</new-connection-sql>

<check-valid-connection-sql>SELECTCOUNT(*)FROMdual</check-valid-connection-sql>

</local-tx-datasource>

</local-tx-datasource>

</datasources>

3.打开%JBOSS_HOME%\server\default\conf\login-config.xml文件,加上下面这一段配置文件:

<application-policyname=”EncryptDBPassword”>//这里的name应该是你在配置数据源时写的security-domain里的字符串

<authentication>

<login-modulecode=”org.jboss.resource.security.SecureIdentityLoginModule”

flag=”required”>

<module-optionname=”username”>root</module-option>//数据库的用户名

<module-optionname=”password”>64c5fd2979a86168</module-option>//数据库的密码,不过是加密过的了

<module-optionname=”managedConnectionFactoryName”>

jboss.jca:service=LocalTxCM,name=OracleDS

</module-option>//注意name等于你的数据源的jndi-name,这里是OracleDS。

</login-module>

</authentication>

</application-policy>

相关推荐