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

如何用Logback正则表达式屏蔽JSON请求中指定敏感数据?

Logback屏蔽JSON敏感数据方案

需求说明

需屏蔽JSON中两类敏感内容:

  • name字段的取值
  • 数组内key为id对应的value取值

原始JSON:

{"menu": {
  "account": {
    "name": "amal",
    "saving": [
      {"key": "id", "value": "12345678"},
      {"key": "Open", "value": "OpenDoc"}
    ]
  }
}}

期望屏蔽后JSON:

{"menu": {
  "account": {
    "name": "****",
    "saving": [
      {"key": "id", "value": "********"},
      {"key": "Open", "value": "OpenDoc"}
    ]
  }
}}

正则表达式与配置

针对两个场景分别编写maskPattern,兼容含换行的格式:

  1. 屏蔽name字段
<maskPattern>"name"\s*:\s*"([^"]*)"</maskPattern>

替换规则:将捕获到的字段值替换为"****"

  1. 屏蔽key为id对应的value字段
<maskPattern>"key"\s*:\s*"id"\s*,\s*"value"\s*:\s*"([^"]*)"</maskPattern>

替换规则:将捕获到的字段值替换为"********"

完整Logback配置示例

使用replace转换器的实现方式:

<encoder>
    <pattern>
        %replace(%msg){'"name"\s*:\s*"([^"]*)"' , '"name": "****"'}
        %replace(%msg){'"key"\s*:\s*"id"\s*,\s*"value"\s*:\s*"([^"]*)"' , '"key": "id", "value": "********"'}%n
    </pattern>
</encoder>

正则规则说明

  • \s*:匹配任意数量空白字符(含空格、换行、制表符),解决字段间换行或空格的格式问题
  • [^"]*:匹配除双引号外的任意字符,确保仅捕获目标字段的取值部分,避免跨字段匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 06:25:07