From 6b5f39c755ed34a90b2942b76b48c4263b85640e Mon Sep 17 00:00:00 2001 From: Mikhail Trofimov Date: Tue, 30 Sep 2025 16:36:42 +0300 Subject: [PATCH] http://jira.mfd.msk:8088/browse/BKI-3215 Updated HttpLoggingFilter to log incoming requests --- .../rest/filters/HttpLoggingFilter.java | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/main/java/ru/nbch/credit_tracker/config/rest/filters/HttpLoggingFilter.java b/src/main/java/ru/nbch/credit_tracker/config/rest/filters/HttpLoggingFilter.java index 262a9d2..aae7ecb 100644 --- a/src/main/java/ru/nbch/credit_tracker/config/rest/filters/HttpLoggingFilter.java +++ b/src/main/java/ru/nbch/credit_tracker/config/rest/filters/HttpLoggingFilter.java @@ -46,6 +46,8 @@ public class HttpLoggingFilter extends OncePerRequestFilter { .orElse(UUID.randomUUID().toString()); resp.setHeader("X-Correlation-Id", correlationId); + logIncomingRequest(req, correlationId); + try { chain.doFilter(req, resp); } finally { @@ -61,7 +63,7 @@ public class HttpLoggingFilter extends OncePerRequestFilter { mask(respHeaders); log.info( - "HTTP {} {}{} | status={} | took={}ms | cid={} | reqHeaders={} | reqBody={} | respHeaders={} | respBody={}", + "HTTP (RESPONSE) {} {}{} | status={} | took={}ms | cid={} | reqHeaders={} | reqBody={} | respHeaders={} | respBody={}", req.getMethod(), req.getRequestURI(), req.getQueryString() == null ? "" : "?" + req.getQueryString(), @@ -78,6 +80,24 @@ public class HttpLoggingFilter extends OncePerRequestFilter { } } + + private void logIncomingRequest(ContentCachingRequestWrapper req, String correlationId) { + String requestBody = readBody(req.getContentAsByteArray(), req.getCharacterEncoding()); + + Map reqHeaders = headersMap(req); + mask(reqHeaders); + + log.info( + "HTTP (REQUEST) {} {}{} | cid={} | reqHeaders={} | reqBody={}", + req.getMethod(), + req.getRequestURI(), + req.getQueryString() == null ? "" : "?" + req.getQueryString(), + correlationId, + reqHeaders, + requestBody + ); + } + private static ContentCachingRequestWrapper wrapRequest(HttpServletRequest request) { return (request instanceof ContentCachingRequestWrapper c) ? c : new ContentCachingRequestWrapper(request, MAX_BODY); }