需配置内容合规过滤机制:一、用DataWeave调用本地敏感词服务实现HTTP检测与脱敏;二、嵌入Java自定义组件离线匹配敏感词;三、通过API Manager网关级审核统一拦截。
如果您在使用 mulerun 进行数据流转或内容处理时,需确保输出文本不包含业务敏感词,则需配置其内置的内容合规过滤机制。mulerun 本身不原生提供敏感词检测模块,但可通过集成外部敏感词服务或自定义 java/script 组件实现自动检测与过滤。以下是具体配置方法:
一、通过 DataWeave 脚本调用本地敏感词服务
该方法利用 MuleRun 的 DataWeave 能力,在消息流转过程中发起 HTTP 请求,将待检文本发送至已部署的敏感词检测服务(如 wordscheck 或 ModelArts Guard),依据返回结果执行脱敏或拦截逻辑。
1、在 MuleRun 应用中添加一个 HTTP Request 操作,目标 URL 设置为本地运行的敏感词检测服务地址,例如 http://localhost:8080/api/check。
2、配置请求体为 JSON 格式,键名为 "text",值为 DataWeave 表达式 payload.content(假设原始文本位于 payload.content 字段)。
3、在 HTTP Request 后添加 Choice Router,根据响应状态码或返回字段 "hasSensitive" 的布尔值分流:若为 true,则进入 Transform Message 步骤执行替换;若为 false,则直接传递原 payload。
4、在 Transform Message 中使用 DataWeave 调用 replace() 函数,将敏感词统一替换为 "**" 或从响应中提取的脱敏后文本。
二、嵌入 Java 自定义组件进行离线敏感词匹配
该方法适用于无法依赖外部服务的封闭网络环境,通过在 MuleRun 工程中引入开源敏感词库工具(如 sensitive-word),在 JVM 内完成低延迟、无网络依赖的实时检测。
1、在 pom.xml 中添加依赖:<groupId>com.github.houbb</groupId> <artifactId>sensitive-word</artifactId> <version>0.2.1</version>。
2、创建 Java 类 SensitiveWordFilter,使用 SensitiveWordBs.newInstance().ignoreCase(true).init() 初始化词库,并加载 classpath 下的 blacklist.txt。
3、在 MuleRun 流程中插入 Custom Java Module 操作,调用 SensitiveWordFilter.checkAndReplace() 方法,传入原始字符串,返回脱敏后文本。
4、确保黑名单文件编码为 UTF-8,且每行仅含一个敏感词,不含空格、标点及 BOM 头。
三、配置 MuleSoft API Manager 实现网关级内容审核
该方法将敏感词检测前置至 API 网关层,对所有经由 MuleRun 暴露的 API 入参统一拦截,避免在每个应用流中重复编写检测逻辑。
1、登录 MuleSoft API Manager 控制台,进入目标 API 的 Policies 页面。
2、添加 Content Validation Policy,启用 JSON Schema 验证并勾选 Enable text scanning 选项。
3、上传自定义规则文件,格式为 JSON,包含 "sensitiveWords": ["涉政词汇", "违规短语"] 字段,并设置匹配模式为 case-insensitive。
4、保存策略后,所有匹配到敏感词的请求将被自动拒绝,并返回 HTTP 状态码 400 Bad Request 及错误提示信息。










