You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用JBoss CLI设置加密系统属性时Elytron截断表达式问题

解决JBoss CLI设置${ENC::...}格式系统属性的截断问题

问题根源

JBoss CLI会自动解析${}格式的表达式,将其视为变量引用处理,导致原始加密字符串被截断;同时在shell环境下执行命令时,shell也可能提前解析${}内容。

解决方案

1. Shell环境下直接执行(转义处理)

用单引号包裹属性值,并对$进行转义,避免shell和CLI的双重解析:

./jboss-cli.sh -c '/system-property=javax.net.ssl.trustStorePassword:add(value='\''\${ENC::initial-resolver:ENCRYPTED_STRING}'\'')'
  • 外层单引号阻止shell解析${}
  • \'用于在shell的单引号字符串中插入单引号
  • \$让CLI不将$识别为变量解析符

2. 交互式CLI执行

先进入交互式模式,再执行命令,无需考虑shell转义,仅用单引号包裹value即可:

./jboss-cli.sh -c

在CLI提示符中输入:

/system-property=javax.net.ssl.trustStorePassword:add(value='${ENC::initial-resolver:ENCRYPTED_STRING}')

交互式模式下,单引号会强制CLI将内容当作纯字符串处理。

3. 使用CLI脚本文件

创建set-property.cli脚本文件,内容如下:

/system-property=javax.net.ssl.trustStorePassword:add(value='${ENC::initial-resolver:ENCRYPTED_STRING}')

通过CLI执行脚本:

./jboss-cli.sh -c --file=set-property.cli

脚本内容不会被shell解析,CLI读取时单引号可保留原始字符串。

验证命令

执行完设置后,用以下命令确认属性值是否完整:

/system-property=javax.net.ssl.trustStorePassword:read-resource

查看输出的value字段,应显示完整的${ENC::initial-resolver:ENCRYPTED_STRING}。

内容的提问来源于stack exchange,提问作者bartek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 22:08:21