1 引言
1.1 编写目的
加强安全管理规范,对用户密码加密。
2 Jboss数据源加密
2.1 生产加密串
1. 生产Jboss密码串
Jboss 服务器执行,生产目录 server 的上一级目录
/home/jboss/jboss-eap-4.3/jboss-as
2. 执行命令,生产加密串,同时修改对应的部署名称,黄色标注
[jboss@ssvttser01 jboss-as]$ java -cp lib/jboss-common.jar:lib/jboss-jmx.jar:server/uat8580/lib/jbosssx.jar:server/uat8580/lib/jboss-jca.jar org.jboss.resource.security.SecureIdentityLoginModule hS0DOQtw
Encoded password: 190fecaa7fc63e11df8592078de921bc
2.2 修改Jboss数据源
1. 停止Jboss服务
Ps –ef |grep java
Kill -9
2. 备份 oracle-ds.xml,修改oracle-ds.xml
数据源目录:
/home/jboss/jboss-eap-4.3/jboss-as/server/uat8680/deploy
<local-tx-datasource>
<jndi-name>platformDataSource</jndi-name>
<connection-url>jdbc:oracle:thin:@10.1.1.2:1521:corevttdb</connection-url>
<use-java-context>false</use-java-context>
<driver-class>oracle.jdbc.OracleDriver</driver-class>
<user-name>caicdj</user-name>
<password>admin_yz</password> <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
<new-connection-sql>ALTER session set NLS_DATE_FORMAT='YYYY-MM-DD'</new-connection-sql>
<min-pool-size>5</min-pool-size>
<max-pool-size>50</max-pool-size>
<blocking-timeout-millis>5000</blocking-timeout-millis>
<idle-timeout-minutes>5</idle-timeout-minutes>
<metadata>
<type-mapping>Oracle9i</type-mapping>
</metadata>
</local-tx-datasource>
我们把local-tx-datasource中的用户名和密码两个节点删除或注释,加个安全域<security-domain>EncryptDBPassword_1</security-domain>
安全域中的值任意,但要和login-config.xml 配置为中的值对应起来。
修改改好
<local-tx-datasource>
<jndi-name>platformDataSource</jndi-name>
<connection-url>jdbc:oracle:thin:@10.1.1.2:1521:corevttdb</connection-url>
<use-java-context>false</use-java-context>
<driver-class>oracle.jdbc.OracleDriver</driver-class>
<security-domain>EncryptDBPassword_1</security-domain>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
<new-connection-sql>ALTER session set NLS_DATE_FORMAT='YYYY-MM-DD'</new-connection-sql>
<min-pool-size>5</min-pool-size>
<max-pool-size>50</max-pool-size>
<blocking-timeout-millis>5000</blocking-timeout-millis>
<idle-timeout-minutes>5</idle-timeout-minutes>
<metadata>
<type-mapping>Oracle9i</type-mapping>
</metadata>
</local-tx-datasource>
3. 修改JBOSS的安全登录配置文,login-config.xml,其中application-policy name和安全域的值一样,修改用户,密码为Jboss加密串,第三个module-option 中的name 要和JNDI数据源中名称一致
文件目录:
/home/jboss/jboss-eap-4.3/jboss-as/server/uat8680/conf
<application-policy name = "EncryptDBPassword_1">
<authentication>
<login-module code="org.jboss.resource.security.SecureIdentityLoginModule" flag="required">
<module-option name="username">CAICDJ</module-option>
<module-option name="password">-42c13cf25f6db50d</module-option>
<module-option name="managedConnectionFactoryName">jboss.jca:name=platformDataSource,service=LocalTxCM</module-option>
</login-module>
</authentication>
</application-policy>
备注:通常做法 oracle-ds.xml中安全域的名称,login-config.xml,application-policy name 的名称,还有module-option name 的名称设置的都一样,都和数据源中JNDI名称一样。
4. 启动Jboss服务器,查看日志是否报错