Я работаю над проектом 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?
Любая помощь будет высоко оценена!