我正在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
}
答案 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”)。