使用JBoss EAP 7,我在类路径中成功包含一个.properties文件。
我还设置了一个保管库,并通过命令行插入了一个值。我检查了值是否存在。
我正在尝试在应用程序中使用保管库条目。因此,例如,在属性文件中,如果我输入以下内容:
token.secret=mysecret
,然后运行我的一个POST请求,它返回一个密钥。然后,我可以运行JUnit
测试,并且断言返回真,即密钥的编码确实使用了值“ mysecret”。
因此,如果我将“ mysecret”放入保管库:
vault.bat --keystore ..\vault\vault.keystore --keystore-password <password> --alias vault --vault-block mySecret --attribute myAtt --sec-attr mysecret --enc-dir ../vault --iteration 97 --salt abcdefgh
命令行将其退回使用:
${VAULT::mySecret::myAtt::1}
然后,如果我在.properties文件中使用它:
token.secret=${VAULT::mySecret::myAtt::1}
并发出相同的POST请求,并运行JUnit测试,这表明返回的密钥不是从“ mysecret”生成的。
如何使用属性文件中文件库中的值使我的JUnit
测试通过?
答案 0 :(得分:0)
我没有我想要的官方答案,但这是可以使用的替代方法*。
您可以将其放在JBoss使用的任何standalone.xml文件中(如果您使用的是独立模式),而不是从.properties文件中引用该文件库,请在system-properties节点下(将其创建)如果还不存在):
<property name="token.secret" value="${VAULT::mySecret::myAtt::1}"/>
这将通过我的断言测试。
* 我仍然希望有人来告诉我如何从.properties文件中引用它...
答案 1 :(得分:0)
设置Vault并将Vault属性存储在属性文件中,例如
//vault.property file contents
KEYSTORE_URL=/home/userid/jboss/jbossvault.jceks
KEYSTORE_PASSWORD=MASK-0Kuitk9Sz/R./bViQcAEXY
KEYSTORE_ALIAS=appln_name_vault
SALT=12345678
ITERATION_COUNT=888
ENC_FILE_DIR=/home/userid/jboss
添加$ JBOSS_HOME / standalone / configuration / standalone.xml
a。保险库部分
<vault>
<vault-option name="KEYSTORE_URL" value="${KEYSTORE_URL}"/>
<vault-option name="KEYSTORE_PASSWORD" value="${KEYSTORE_PASSWORD}"/>
<vault-option name="KEYSTORE_ALIAS" value="${KEYSTORE_ALIAS}"/>
<vault-option name="SALT" value="${SALT}"/>
<vault-option name="ITERATION_COUNT" value="${ITERATION_COUNT}"/>
<vault-option name="ENC_FILE_DIR" value="${ENC_FILE_DIR}"/>
</vault>
b。 ssl密钥存储区
<server-identities>
<ssl>
<keystore path="$JBOSS_HOME/keystore/Appln_Cert_KeyStore.jks" keystore-password="${VAULT::Appln_SSL_block::passphrase::1}"/>
</ssl>
</server-identities>
以独立后台模式启动jboss eap nohup $ JBOSS_HOME / bin / standalone.sh -P /home/userid/jboss/vault-config.properties&