http://jira.mfd.msk:8088/browse/BKI-3215 Updated HttpLoggingFilter to log incoming requests

This commit is contained in:
Mikhail Trofimov 2025-09-30 16:36:42 +03:00
parent e6bf35f337
commit 6b5f39c755

View file

@ -46,6 +46,8 @@ public class HttpLoggingFilter extends OncePerRequestFilter {
.orElse(UUID.randomUUID().toString()); .orElse(UUID.randomUUID().toString());
resp.setHeader("X-Correlation-Id", correlationId); resp.setHeader("X-Correlation-Id", correlationId);
logIncomingRequest(req, correlationId);
try { try {
chain.doFilter(req, resp); chain.doFilter(req, resp);
} finally { } finally {
@ -61,7 +63,7 @@ public class HttpLoggingFilter extends OncePerRequestFilter {
mask(respHeaders); mask(respHeaders);
log.info( log.info(
"HTTP {} {}{} | status={} | took={}ms | cid={} | reqHeaders={} | reqBody={} | respHeaders={} | respBody={}", "HTTP (RESPONSE) {} {}{} | status={} | took={}ms | cid={} | reqHeaders={} | reqBody={} | respHeaders={} | respBody={}",
req.getMethod(), req.getMethod(),
req.getRequestURI(), req.getRequestURI(),
req.getQueryString() == null ? "" : "?" + req.getQueryString(), 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<String, String> 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) { private static ContentCachingRequestWrapper wrapRequest(HttpServletRequest request) {
return (request instanceof ContentCachingRequestWrapper c) ? c : new ContentCachingRequestWrapper(request, MAX_BODY); return (request instanceof ContentCachingRequestWrapper c) ? c : new ContentCachingRequestWrapper(request, MAX_BODY);
} }