Wie verhindert man bei Spring Boot und Logback, dass das Passwort eines JSON Elements nicht im Logfile erscheint?
In einer Spring-Boot Applikation möchte man im Allgemeinen nicht das Passwort in die Logfiles schreiben. Das Log-Framework logback ermöglicht es mit:
%replace(%msg){'"password":".*"', '"password":"xxxxx"'}
das Passwort innerhalb eines JSON-Elements zu ersetzen.
In der application.properties muss man das dann bspw. folgendermaßen in die Log Pattern einbauen:
...
# Replace password in returned JSON with xxxx
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss.SSS} | %magenta([%thread]) | ${PID:- } | %highlight(%-5level) | %logger.%M - %replace(%msg){'"password":".*"', '"password":"xxxxx"'}%n
logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss.SSS} | %magenta([%thread]) | ${PID:- } | %highlight(%-5level) | %logger.%M - %replace(%msg){'"password":".*"', '"password":"xxxxx"'}%n
...