Так что это похоже на вопрос интервью, но это не так.Прежде чем пометить это как дубликат, пожалуйста, знайте, что я посмотрел на другие ответы: 1. нет решения scala, 2. моему делу нужен способ маскировки более чем одного подходящего ключа.
У меня есть def, который выполняет все мои http-запросы.После отправки запроса я регистрирую запрос и ответ.Так как эти запросы имеют тело JSON, которое может иметь или не иметь чувствительное поле, подобное следующему:
challengeAnswer
currPassword
password
answer
oldPassword
Я хотел бы создать универсальный сканер JSON, который DEEP сканирует ключи данного объекта JSON и маскируетзначение, если оно совпадает с одним из этих регулярных выражений без учета регистра:
.*answer.*
.*password.*
Тело образца запроса:
{
"resetPassQuestion1": "I pity the ...?",
"resetPassAnswer1": "Foo",
"resetPassQuestion2": "Let's grab a pint at the ...?",
"resetPassAnswer2": "Bar",
"firstname": "John",
"lastname": "Doe",
"email": "john.doe@example.com",
"loginId": "jdoe666",
"password": "Secret1"
}
Мне нужно замаскировать Foo, Bar и Secret1 в этом примере с 5 звездочкаминапример, когда я печатаю в журналах, он будет печатать:
{
"resetPassQuestion1": "I pity the ...?",
"resetPassAnswer1": "*****",
"resetPassQuestion2": "Let's grab a pint at the ...?",
"resetPassAnswer2": "*****",
"firstname": "John",
"lastname": "Doe",
"email": "john.doe@example.com",
"loginId": "jdoe666",
"password": "*****"
}
Я не нахожу примеров соответствия регистров, которые нечувствительны.Что является хорошим четким способом решения этой проблемы с помощью легко читаемого кода.