jboss7 数据源密码加密


应用场景:没加密前jboss数据源是明文密码,不安全。

jboss版本是7.1.1

配置方法如下:

1、备份 $JBOSS_HOME/standalone/configuration/standalone.xml

2、执行命令  :
java -cp /usr/local/jboss/modules/org/picketbox/main/picketbox-4.0.7.Final.jar:$JBOSS_HOME/modules/org/jboss/logging/main/jboss-logging-3.1.0.GA.jar:$CLASSPATH 
 org.picketbox.datasource.security.SecureIdentityLoginModule 1234qwer

命令的意思是指定运行SecureIdentityLoginModule类时依赖picketbox-4.0.7.Final.jar和jboss-logging-3.1.0.GA.jar

其中picketbox-4.0.7.Final.jar和jboss-logging-3.1.0.GA.jar 替换为生产环境中对应的jar包,1234qwer为密码
参考原文档命令:
java -cp $JBOSS_HOME/modules/org/picketbox/main/picketbox-4.0.6.<beta|final>.jar:$JBOSS_HOME/modules/org/jboss/logging/main/jboss-logging-3.1.0.<some_version>.jar:$CLASSPATH org.picketbox.datasource.security.SecureIdentityLoginModule password

命令正确的话结果类似Encoded password: c7319190e8d5b00df8592078de921bc。
其中c7319190e8d5b00df8592078de921bc就是明文密码1234qwer对应的密文。
这是使用blowfish加密算法加密的,blowfish是一种对称加密算法,密钥估计在SecureIdentityLoginModule或者picketbox-4.0.7.Final.jar中

3、编辑$JBOSS_HOME/standalone/configuration/standalone.xml。
在<subsystem xmlns="urn:jboss:domain:security:1.1">中<security-domains>里面增加一段:
<security-domain name="EncryptedPassword">
  <authentication>
    <login-module code="SecureIdentity" flag="required">
      <module-option name="username" value="mysql"/><!-- 用户名 -->
      <module-option name="password" value="c7319190e8d5b00df8592078de921bc"/><!-- 密码 -->
    </login-module>
  </authentication>
</security-domain>



4、在standalone.xml中把<datasource jta="false" jndi-name="java:/jdbc/yh_web" 
标签里面<security></security>换成<security-domain>EncryptedPassword</security-domain>
如下:
<security>
     <security-domain>EncryptedPassword</security-domain>
</security>


5、如果需要配置多个数据源,只需要修改security-domain标签中name则ok了,name是加密数据源的名称,name唯一。配置多1个数据源,以name为EncryptedPassword_um的securoty-domain为例,如下两张图 :



完毕。

猜你喜欢

转载自blog.csdn.net/heweimingming/article/details/54668803