3.2.10. 从外部源获取密钥存储密码
可在 vault 配置中使用 EXT、EXT
C、CMD、CMD
C
或 CLASS
方法来获取 Java 密钥存储密码。
<vault-option name="KEYSTORE_PASSWORD" value="METHOD_TO_OBTAIN_PASSWORD"/>
<vault-option name="KEYSTORE_PASSWORD" value="METHOD_TO_OBTAIN_PASSWORD"/>
方法的描述列为:
- {EXT}…
-
指的是确切的命令,其中
…
是确切的命令。例如:{EXT}/usr/bin/getmypassword --section 1 --query company
运行/usr/bin/getmypassword
命令,该命令可在标准输出上显示密码,并将它用作 Security Vault 的密钥存储的密码。在本例中,命令使用两个选项:第 1 部分
和--query company
。 - {EXTC[:expiration_in_millis]}…
-
指的是确切的命令,其中
…
是传递给Runtime.exec(String)
方法的确切命令行,以执行平台命令。命令输出的第一行用作密码。EXTC 变体缓存expiration_in_millis
毫秒的密码。默认缓存到期时间为0 = infinity
.例如:{EXTC:120000}/usr/bin/getmypassword --section 1 --query company
验证缓存是否包含/usr/bin/getmypassword
输出,如果它包含输出,然后将其使用。如果它不包含输出,请运行 命令将其输出到缓存并使用它。在本例中,缓存在 2 分钟后过期,该缓存为 120000 毫秒。 - {CMD}… 或 {CMDC[:expiration_in_millis]}…
-
常规命令是用
(
comma)分隔的字符串,其中第一部分是实际命令,而其他部分则表示参数。逗号可以反斜杠,使它成为 参数的一部分。例如:{CMD}/usr/bin/getmypassword,--section,1,--query,company
。 - {CLASS[@jboss_module_spec]}classname[:ctorargs]
-
其中
[:ctorargs]
是用以下分隔的可选字符串:(
冒号)将类名称传递到类名称器。
Thectorargs
是一个以逗号分隔的字符串列表。例如:{CLASS@org.test.passwd}org.test.passwd.ExternamPassworProvider
。在本例中,org.test.passwd.ExternamPassworProvider
类是从org.test.passwd
模块加载的,并使用toCharArray()
方法获取密码。如果toCharArray()
不可用,则使用toString()
方法。org.test.passwd.ExternamPassworProvider
类必须具有默认的构造器。