I want to have the Composite Endpoint create a Correlation Id and add this value to ALL HTTP requests from the Compisite to the "back-end" Endpoints, and I want the "back-end" endpoints to log this value to create a unique value when a HTTP request comes into my compisite microservice, I have Spring inject an Interceptors @Configuration public class CorrelationConfig implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new CorrelationInterceptor()); } } in the custom Interceptors I create a Correlation Id and add it to... I think adding it to the Http Request as an Attribute, and when the composite microservice call the "back-end" microservice it add a custom header to the call import java.util.UUID; import org.springframework.stereotype.Component; import org.springframework.util.ObjectUtils; import org.springframework.web.servlet.HandlerInterceptor; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; @Component public class CorrelationInterceptor implements HandlerInterceptor { private static final String CORRELATION_ID_HEADER_NAME = "X-Correlation-Id"; @Override public boolean preHandle(final HttpServletRequest request, final HttpServletResponse response, final Object handler) throws Exception { final String correlationId = getCorrelationIdFromHeader(request); request.setAttribute(CORRELATION_ID_HEADER_NAME, correlationId); return true; } @Override public void afterCompletion(final HttpServletRequest request, final HttpServletResponse response, final Object handler, final Exception ex) throws Exception { request.removeAttribute(CORRELATION_ID_HEADER_NAME); } private String getCorrelationIdFromHeader(final HttpServletRequest request) { String correlationId = request.getHeader(CORRELATION_ID_HEADER_NAME); if (ObjectUtils.isEmpty(correlationId)) { correlationId = generateUniqueCorrelationId(); } return correlationId; } private String generateUniqueCorrelationId() { return UUID.randomUUID().toString(); } } ------------------------------------------------------------ now when the compisite microservice calls the 'back-end' microservice it needs to add the CorrelationId as a Header to the request this means the endpoint mapping needs access to the Request obejct, so I change the signature to: @GetMapping(value="/routeSummary/{code}", produces="application/json") RouteSummary getRouteSummaryByCode(@PathVariable String code, HttpServletRequest request, HttpServletResponse response) throws IOException; then in the implementation of this endpint I code: String url = apiUrl + "/route/" + code; Route route = restTemplate.exchange(url,GET, buildRequest(request), <= note this new parameter new ParameterizedTypeReference() {} ).getBody(); I build the customer Http Request to include my correlationId header private HttpEntity buildRequest(HttpServletRequest request) { String correlationId = (String) request.getAttribute(CORRELATION_ID_HEADER_NAME); HttpHeaders headers = new HttpHeaders(); headers.set(CORRELATION_ID_HEADER_NAME, correlationId); HttpEntity requestEntity = new HttpEntity<>(headers); return requestEntity; }