Mule记录敏感数据

时间:2016-11-29 19:37:55

标签: logging mule mule-component

我正在Mule上记录请求Json消息,它显示了我用来打印完整Payload的所有信息。如何从Mule Logger中隐藏或隐藏敏感数据

   <logger message="Loin Request,#[message.payloadAs(java.lang.String)]"  level="INFO" doc:name="Request Input"/>

样品申请:

    {
  "credentials": {
    "userId": "test1234@yopmail.com",
    "password": "test12345"
  },
  "sessionID": 1234567890,
  "includecheckout": true
}

我希望在日志中打印如下。

{
  "credentials": {
    "userId": "test1234@yopmail.com",
    "password": "xxxxxxxxxx"
  },
  "sessionID": 1234567890,
  "includecheckout": true
}

2 个答案:

答案 0 :(得分:2)

这是可能的,您可以使用Mule安全模块插件加密JSON的特定字段,这是一个企业功能。
在放置<encryption:encrypt/>之后,您需要使用<json:json-to-object-transformer/>组件来加密JSON有效负载中的元素,这将帮助您将json分解为对象并选择要加密的特定元素。 您可以在此处参考: - http://bushorn.com/encrypting-a-json-element/

答案 1 :(得分:0)

您需要解析和替换敏感字段,或者只提取要记录的字段。或者,如果您的有效负载设置为HashMap(或Expando),您可以通过使用MEL设置Logger值来记录您想要的字段,如下所示:

#[new [NotSensitiveField1: payload.NotSenstiveField1, NotSensitiveField2 : payload.NotSenstiveField2]]

也可以付费将其推断为Java函数并从MEL中调用它(即#[com.LogFields.NoSensitiveFields(payload)])并用静态数据加密或替换它们(即“HIDDEN”)。