如何在JBoss EAP 7.4中通过系统属性访问Elytron凭证存储密码
在JBoss EAP 7.4中通过系统属性访问Elytron凭证存储的正确配置
你之前尝试在系统属性的value中嵌套<credential-reference>标签的方式无法生效,因为系统属性的value仅支持纯文本,不能直接解析XML标签。下面是正确的配置方法:
1. 系统属性的正确配置
在standalone-full.xml的<system-properties>节点中,使用**表达式语言(EL)**引用凭证存储中的凭证,格式为${credentials.lookup('凭证存储名称', '凭证别名')}:
<system-properties> <property name="RSA_KEY_TEST" value="${credentials.lookup('credential-store', 'DBPasswordCredential')}"/> </system-properties>
2. 确保凭证存储已正确配置
要让上述EL表达式生效,必须先在Elytron子系统中正确配置凭证存储。示例配置如下:
<subsystem xmlns="urn:wildfly:elytron:12.0" final-providers="combined-providers" disallowed-providers="OracleUcrypto"> <credential-stores> <credential-store name="credential-store" type="key-store" location="credential-store.jceks" relative-to="jboss.server.config.dir"> <!-- 这里可根据实际情况用clear-text或加密方式指定凭证存储的密码 --> <credential-reference clear-text="your-store-password"/> </credential-store> </credential-stores> </subsystem>
关键注意事项
- 确认凭证存储名称(示例中的
credential-store)和凭证别名(示例中的DBPasswordCredential)与实际配置完全一致 - 凭证存储文件(如
credential-store.jceks)需放置在jboss.server.config.dir指向的目录下(默认是服务器的configuration文件夹) - 如果凭证存储的密码采用了加密方式,需确保对应的解密机制(如另一个凭证存储或安全域)已正确配置,避免启动时无法加载凭证存储
内容的提问来源于stack exchange,提问作者CoderNavinda
相关产品推荐
相关产品推荐

