From: saul.gill Date: Tue, 10 Jun 2025 15:01:25 +0000 (+0100) Subject: Fix double-logging of response X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=3a8f6e4bbff10bc911d2a16f464e58232b98cf69;p=ccsdk%2Foran.git Fix double-logging of response Issue-ID: CCSDK-4117 Change-Id: I5ecef4f65e79074938980f2655c3e0b569a323e7 Signed-off-by: saul.gill --- diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/util/v3/ReactiveEntryExitFilter.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/util/v3/ReactiveEntryExitFilter.java index 642c868a..866688bf 100644 --- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/util/v3/ReactiveEntryExitFilter.java +++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/util/v3/ReactiveEntryExitFilter.java @@ -98,18 +98,24 @@ public class ReactiveEntryExitFilter implements WebFilter { .doFinally(signal -> MDC.clear())); // Clear MDC after the request body is processed } }; + + StringBuilder responseBodyBuilder = new StringBuilder(); + ServerHttpResponseDecorator loggingServerHttpResponseDecorator = new ServerHttpResponseDecorator(exchange.getResponse()) { @Override public Mono writeWith(Publisher body) { return Mono.deferContextual(contextView -> super.writeWith(Flux.from(body).doOnNext(dataBuffer -> { String responseBody = dataBuffer.toString(StandardCharsets.UTF_8); + responseBodyBuilder.append(responseBody); + })).doFinally(signalType -> { restoreFromContextToMdc(contextView); logger.info("For the request ID: {} the Status code of the response: {}", - exchange.getRequest().getId(), getStatusCode()); + exchange.getRequest().getId(), exchange.getResponse().getStatusCode()); logger.trace("For the request ID: {} the response is: {} ", - exchange.getRequest().getId(), responseBody); - })).doFinally(signalType -> MDC.clear())); // Clear MDC to prevent leakage + exchange.getRequest().getId(), responseBodyBuilder); + MDC.clear(); + })); // Clear MDC to prevent leakage } }; return chain.filter(exchange.mutate()