Как заменить части строки с заданными префиксами, используя регулярное выражение - PullRequest
0 голосов
/ 01 мая 2018

Я работаю над проектом Spring Boot, который должен маскировать конфиденциальные данные в выходных данных журнала. Подход, который я использую, заключается в том, чтобы указать замену в application.properties с помощью ключа конфигурации "logging.pattern.console", например:

logging.pattern.console=%replace(%msg){'password=.*', 'password=xxx'}%n

Теперь проблема в том, что существует более одного ключевого слова, значения которого должны быть заменены, например, "credit_card_number =", "ccv =", "ssn =" и т. Д. И т. Д. Эти пары ключ-значение входят в HTTP GET-запросы, такие как:

https://blahblah.com/blah/somenoun?user=lisa&password=secret&credit_card_number=1111111111111111

Вхождения ключевых слов являются произвольными, без определенного порядка, и они не всегда появляются в запросах.

Мой вопрос: как записать регулярное выражение в теле параметра «replace», чтобы информация с префиксом указанных ключевых слов обнаруживалась и маскировалась? Возможно ли это даже в одном регулярном выражении? Если это невозможно, есть ли другой способ сделать это в приложении Spring Boot?

Любая помощь будет высоко оценена!

1 Ответ

0 голосов
/ 02 мая 2018

Я нашел решение для маскировки конфиденциальной информации с несколькими ключевыми словами, используя цепочку «replace (p) {r, t}» , протестировано и работало для меня.

Но я все еще очень заинтересован в решении Regex для этой задачи. Любое предложение будет высоко оценено!

...