WildFly Elytron CLI设置加密系统属性报错WFLYCTL0097
解决WildFly CLI中加密表达式赋值系统属性的类型错误问题
使用WildFly 33.0.0.Final时,尝试通过CLI脚本调用加密命令并直接赋值给系统属性aaa,执行如下命令:
/system-property=aaa:add(value=`/subsystem=elytron/expression=encryption:create-expression( resolver=initial-resolver, clear-text=MyPassword)`)
触发类型错误:
{ "outcome" => "failed", "failure-description" => "WFLYCTL0097: Wrong type for 'value'. Expected [EXPRESSION, STRING] but was OBJECT", "rolled-back" => true }
单独执行加密命令可返回正确表达式,手动配置也能生效,但脚本直接嵌套调用时因类型不匹配失败。以下是两种可重复的脚本化解决方案:
方法1:用--command参数传递结果
利用CLI的--command参数,将加密命令的结果以字符串形式传递给系统属性添加命令:
/subsystem=elytron/expression=encryption:create-expression(resolver=initial-resolver, clear-text=MyPassword) --command="/system-property=aaa:add(value=\${result})"
${result}会自动引用前一个命令的返回值,CLI会将其转换为符合要求的字符串类型。
方法2:通过变量提取表达式字段
先将加密命令的返回对象存入变量,再提取其中的expression字段赋值:
# 执行加密命令并保存结果到变量 encrypt_result=`/subsystem=elytron/expression=encryption:create-expression(resolver=initial-resolver, clear-text=MyPassword)` # 提取表达式字段并设置系统属性 /system-property=aaa:add(value=${encrypt_result.expression})
这种方式直接访问返回对象的expression属性,确保传入的是字符串类型的加密表达式,逻辑更清晰。
验证配置
执行完成后,可通过以下命令确认系统属性是否正确配置:
/system-property=aaa:read-resource
返回结果应包含正确的加密表达式,且无类型错误提示。
内容的提问来源于stack exchange,提问作者Philip W
相关产品推荐
相关产品推荐

