1

主要限制是对于不同的客户端,我必须拥有具有不同凭据的不同数据库。因此,我必须为新客户即时创建数据源(无需重新启动 JBoss):

<datasources>
   <xa-datasource>
     <jndi-name>jdbc/1349173612812_ARCHIVE_001DS</jndi-name>
     <isSameRM-override-value>false</isSameRM-override-value>
     <xa-datasource-class>com.microsoft.sqlserver.jdbc.SQLServerXADataSource</xa-datasource-class>
     <xa-datasource-property name="URL">jdbc:sqlserver://DEVDB\MYDB;databaseName=DEV_ARCHIVE_001</xa-datasource-property>
     <xa-datasource-property name="DatabaseName">DEV_ARCHIVE_001</xa-datasource-property>
     <xa-datasource-property name="SelectMethod">cursor</xa-datasource-property>
     <xa-datasource-property name="User">admin</xa-datasource-property>
     <xa-datasource-property name="Password">plain text password</xa-datasource-property>
  </xa-datasource>
</datasources>

一切正常,但知道我必须加密密码,以采取安全措施。

我找到了解决方案,application policy但为了让 JBoss 可以看到策略,必须重新启动服务器 - 这对我来说不是一个选项。

是否有另一种保护密码的方法?

4

2 回答 2

0

当服务器需要数据源配置时,org.jboss.resource.security.SecureIdentityLoginModule 类可用于加密数据库密码和提供密码的解密版本。SecureIdentityLoginModule 使用硬编码密码来加密/解密数据源密码。

数据源密码使用 SecureIdentityLoginModule 主方法通过传入明文密码进行加密。SecureIdentityLoginModule 由 jbosssx.jar 提供。

此过程适用于 JBoss 企业应用平台版本 5.1 及更高版本

  1. GoTo Jboss directory or Change directory to the jboss-as directory for Example user/demo/Jboss/

    Linux 命令

java -cp client/jboss-logging-spi.jar:lib/jbosssx.jar org.jboss.resource.security.SecureIdentityLoginModule PASSWORD

或者

java -cp bin/client/jboss-logging-spi.jar:standalone/lib/ext/jbosssx.jar org.jboss.resource.security.SecureIdentityLoginModule PASSWORD

Windows 命令: java -cp client\jboss-logging-spi.jar;lib\jbosssx.jar org.jboss.resource.security.SecureIdentityLoginModule PASSWORD

结果:

该命令将返回一个加密的密码。

重要的提示

:如果执行此命令后出现错误在这种情况下检查,您的 jboss 中应该有“jbosssx.jar”、“jboss-logging-spi.jar”。它应该在 lib 目录下,或者可能在独立/lib/ext/ 中(在 cammand 中,它正在为此 jar 加密密码的路径)

于 2013-12-13T12:02:23.330 回答
0

将有助于加密密码。

于 2013-04-03T07:54:54.867 回答