2016-11-29 3 views
0

Я регистрирую запрос Json Message на Mule, и он отображает всю информацию, как я использую для печати полной полезной нагрузки. Как я могу замаскировать или скрыть конфиденциальные данные от Mule LoggerMule Logging для конфиденциальных данных

<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 с помощью Mule безопасности модуля плагина, который является особенностью предприятия.
Вам необходимо использовать компонент <encryption:encrypt/> для шифрования элемента в полезной нагрузке JSON после размещения <json:json-to-object-transformer/>, который поможет вам разбить json на объект и выбрать конкретный элемент для шифрования.
Вы можете сослаться здесь, чтобы сделать это: - http://bushorn.com/encrypting-a-json-element/

0

Вам нужно разобрать и заменить чувствительные поля или извлечь только поля, которые вы хотите, чтобы войти. В качестве альтернативы, если ваша полезная нагрузка устанавливается в HashMap (или Expando), вы можете просто войти поля, которые вы хотите, установив значение Logger, используя MEL, как так:

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

Он может также выплатить экстраполировать это в Java и вызывать его из MEL (т.е. #[com.LogFields.NoSensitiveFields(payload)]) и шифровать или заменять их статическими данными (т.е. «HIDDEN»).