WSO2 Micro Integrator 4.2.0:wso2:vault-lookup()返回别名而非加密密码
WSO2 Micro Integrator vault-lookup返回别名而非加密密钥问题
问题详情
已将密钥添加至deployment.toml并通过cipher-tool.sh完成加密:
[secrets] orga_client_key = "NuwQtop76Oq6OAWGpkhywAeLkRj1nPiAFlBMzmni2FZO/APTp5EyKl6Hc+xlb5pBUdo3C/cd32eyzGHf/LjtCaSg8CaspYa35au0H19pP5h/9pymnqiKvdXFocbDuNLoFvKp4lMGbh9rd8DmMn6kzerTmAFb1PsvxjCSB$=="
在Synapse中介流中调用wso2:vault-lookup('orga_client_key')获取密钥时,仅返回别名本身。
中介流配置
<log level="custom"> <property expression="wso2:vault-lookup('orga_client_key')" name="TEST KEY"/> </log>
日志输出
INFO {org.apache.synapse.mediators.builtin.LogMediator} - TEST KEY = orga_client_key
已找到两个相关GitHub Issue,但未明确解决方案:
- WSO2 Micro Integrator Issue #2050
- WSO2 DevStudio Tooling EI Issue #1085
需求:在中介流中正确获取加密后的密钥值,而非别名。
可能的解决方案
确认密钥存储配置完整性
检查deployment.toml中密钥存储(keystore)的配置是否正确,确保密钥库文件存在、密码正确,且已关联到加密系统。部分WSO2 MI版本中,加密后的密钥需以$secret{}格式标记,示例配置:[keystore.tls] file_name = "wso2carbon.jks" password = "wso2carbon" alias = "wso2carbon" key_password = "wso2carbon" [secrets] orga_client_key = "$secret{orga_client_key}"重新执行加密工具
删除当前deployment.toml中的加密密钥值,恢复为明文后重新运行cipher-tool.sh,确保加密过程无报错,执行后检查配置文件中的密钥是否被正确替换为加密标记或字符串。验证函数调用格式
尝试修改wso2:vault-lookup的参数为完整密钥路径,例如:<property expression="wso2:vault-lookup('secrets.orga_client_key')" name="TEST KEY"/>升级Micro Integrator版本
若使用旧版本,尝试升级至最新稳定版,相关Issue中提到的问题可能已在后续版本中修复。检查启动日志中的密钥库状态
查看MI启动日志,确认密钥库已成功加载,无Keystore load failed类报错。若密钥库加载异常,vault lookup将无法解析密钥值。
内容的提问来源于stack exchange,提问作者Genaro Guida
相关产品推荐
相关产品推荐

