0

我见过的所有 Wildfly(和 JBoss AS)文档和 Glassfish 到 Wildfly 的迁移示例都使用需要数据库设置和其他一些配置文件摆弄的 JDBCrealm。

问:是否有与简单 Glassfish 文件领域和keyfileWildfly 中的等价物?

[编辑:我寻求的内置功能的更多解释。]

在 Glassfish 浏览器管理控制台中,可以转到Configurations > Security > Realms > file然后Manage Users添加具有名称、组列表和密码的新用户(以便为您加密和轻松存储在 中keyfile)。asadmin 命令同样提供create-file-userkeyfile. keyfile然后可以简单地从一个安装版本复制到另一个安装版本。然后,在此过程中提到的任何组都可以在 Web 应用程序配置中作为角色字符串进行引用。

4

1 回答 1

1

你到底想在这里加密什么?

对于加密密钥库密码和类似的,您正在寻找的是 Wildfly 中的保险库。请参阅https://developer.jboss.org/wiki/MaskingPasswordsForWildFlyUsingNon-interactiveVaultTool

如果您正在寻找一种专门加密数据存储密码的方法,则需要事先使用 picketbox 对密码进行加密,并在每个数据存储的安全子系统中使用一个安全域。

加密密码的示例脚本:

#!/bin/bash

PASSWORD=$1

if [ -z "$PASSWORD" ]; then
  echo "Usage: `basename $0` <password>"
  exit 1
fi

JAVA_HOME="${JAVA_HOME:=/usr/java/default}"

cd /opt/wildfly/modules/system/layers/base/org/picketbox/main
$JAVA_HOME/bin/java -classpath picketbox-4.0.21.Beta1.jar \
   org.picketbox.datasource.security.SecureIdentityLoginModule $PASSWORD \
   | sed -e 's#Encoded password: ##'

示例安全域

<subsystem xmlns="urn:jboss:domain:security:1.2">
  <security-domains>
  ...
    <security-domain name="my_security_domain" cache-type="default">
      <authentication>
        <login-module code="org.picketbox.datasource.security.SecureIdentityLoginModule" flag="required">
          <module-option name="username" value="my_username"/>
          <module-option name="password" value="my_encrypted_password"/>
          <module-option name="managedConnectionFactoryName" value="jboss.jca:service=LocalTxCM,name=my_datasource"/>
        </login-module>
      </authentication>
    </security-domain>
  </security-domains>
</subsystem>

并在数据源定义中引用它

<subsystem xmlns="urn:jboss:domain:datasources:3.0">
  </datasources>
    <datasource pool-name="my_datasource"...>
    ...
    <security>
      <security-domain>my_security_domain</security-domain>
    </security>
  </datasource>
</subsystem>
于 2016-09-20T09:14:33.507 回答