用途:帮助 MuleSoft 应用实现安全属性配置,扫描 Mule 应用中的敏感数据并加密。
主要能力:扫描 src/main/mule 下的 XML 文件以及 src/main/resources 下的 properties/YAML 文件,识别 password、secret、apikey、token、username、clientId、clientSecret、url、private、certificate 等敏感属性;对非空且尚未使用 ${secure:: 的值进行标记;将现有 ${property} 占位符转换为 ${secure::property};批量加密敏感值并写入 local.secure.properties;可选保留未加密备份 local.properties 并添加警告注释;更新或创建 global-configs.xml 中的 secure-properties 配置;在 pom.xml 中添加 mule-secure-configuration-property-module 依赖;更新 .vscode/launch.json 的 mule.runtime.args 添加 -M-Dencryption.key;把含敏感数据的文件加入 .gitignore。
使用方式:技能会先确认 src/main/mule 是否存在,然后依次询问加密密钥、算法(AES、Blowfish、DES、DESede、RC2)、加密模式(CBC、CFB、ECB、OFB、GCM)以及是否备份未加密值;随后在 {skill_base_directory}/assets/secure-properties-tool.jar 查找工具,缺失时用 curl 或 wget 从 MuleSoft 文档站点下载;经用户确认后执行加密命令:java -cp {skill_base_directory}/assets/secure-properties-tool.jar com.mulesoft.tools.SecurePropertiesTool string encrypt <algorithm> <mode> <key> <value>。手工下载地址为 https://docs.mulesoft.com/mule-runtime/4.4/_attachments/secure-properties-tool.jar。
适用场景:需要为 Mule 应用集中加密配置中的敏感信息、避免明文凭据提交到版本库时使用。
限制:需要已安装 Java;该 JAR 托管在文档站点而非 Maven 仓库,不能用 Maven 获取;必须经用户确认后才修改文件;加密失败或 XML 解析失败会跳过对应项并提示;不得提交 local.secure.properties、local.properties 及含敏感数据的配置文件;使用前应用加密密钥测试运行。