2016-11-29 86 views
0

我正在记录Mule上的请求Json消息,它显示了我用来打印完整Payload的所有信息。我怎样才能从骡记录仪Mule记录敏感数据

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

样品请求屏蔽或隐藏敏感数据:

{ 
    "credentials": { 
    "userId": "[email protected]", 
    "password": "test12345" 
    }, 
    "sessionID": 1234567890, 
    "includecheckout": true 
} 

我期待在日志中,如下打印。

{ 
    "credentials": { 
    "userId": "[email protected]", 
    "password": "xxxxxxxxxx" 
    }, 
    "sessionID": 1234567890, 
    "includecheckout": true 
} 

回答

2

这是可能的,你可以用骡子安全模块插件,它是一个企业的特征加密JSON的特定领域。
您需要使用<encryption:encrypt/>组件在放置<json:json-to-object-transformer/>后加密JSON负载中的元素,这将帮助您将json分解为对象并选择要加密的特定元素。
你可以参考这样做: - http://bushorn.com/encrypting-a-json-element/

0

你需要解析和替换敏感字段,或者只需要提取你想要记录的字段。另外,如果您的有效载荷被设定为一个HashMap(或Expando的),你只需登录你想要的字段设置使用MEL像这样的记录器值:

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

它也可以支付推断成Java功能,并从MEL中调用它(即#[com.LogFields.NoSensitiveFields(payload)]),并用静态数据(即“隐藏”)加密或替换它们。