在 Spring Boot 中修改日志请求负载

joe*_*oel 5 java logging spring spring-boot

我们如何在 Spring-boot 中修改和记录请求负载?

我已经实现了CommonsRequestLoggingFilter并且能够记录有效负载,但希望在记录之前修改请求,以便我可以在日志中隐藏一些敏感数据。

dal*_*y42 5

CommonsRequestLoggingFilter继承自AbstractRequestLoggingFilter它允许您提供应该返回的谓词true以记录错误。

就我而言,我想记录除授权标头之外的所有内容:

loggingFilter.setHeaderPredicate(header -> !header.toLowerCase().equals("authorization"));
Run Code Online (Sandbox Code Playgroud)

这将导致记录器屏蔽 auth 标头:

... headers=[authorization:"masked", ...]

Run Code Online (Sandbox Code Playgroud)

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/filter/AbstractRequestLoggingFilter.html#setHeaderPredicate-java.util.function.Predicate-