1 package org.openecomp.sdc.common.log.interceptors;
3 import org.apache.http.*;
4 import org.apache.http.protocol.HttpContext;
5 import org.onap.logging.filter.base.AbstractMetricLogFilter;
6 import org.onap.logging.ref.slf4j.ONAPLogConstants;
7 import org.openecomp.sdc.common.log.elements.LogFieldsMdcHandler;
9 import java.io.IOException;
12 public class ApacheClientLogRequestInterceptor extends AbstractMetricLogFilter<HttpRequest, HttpResponse, HttpMessage> implements HttpRequestInterceptor {
14 private String previousInvocationId;
17 protected void addHeader(HttpMessage httpMessage, String s, String s1) {
18 httpMessage.addHeader(s, s1);
22 protected String getTargetServiceName(HttpRequest httpRequest) {
23 return httpRequest.getRequestLine().getUri();
27 protected String getServiceName(HttpRequest httpRequest) {
28 return URI.create(httpRequest.getRequestLine().getUri()).getPath();
32 protected int getHttpStatusCode(HttpResponse httpResponse) {
33 return httpResponse.getStatusLine().getStatusCode();
37 protected String getResponseCode(HttpResponse httpResponse) {
38 return String.valueOf(httpResponse.getStatusLine().getStatusCode());
42 protected String getTargetEntity(HttpRequest httpRequest) {
43 //fallback to default value that provided by AbstractMetricLogFilter
48 protected void additionalPre(HttpRequest httpRequest, HttpMessage httpMessage) {
49 String outgoingInvocationId = httpMessage.getFirstHeader(ONAPLogConstants.Headers.INVOCATION_ID).getValue();
50 LogFieldsMdcHandler.getInstance().setOutgoingInvocationId(outgoingInvocationId);
51 LogFieldsMdcHandler.getInstance().setKeyInvocationId(previousInvocationId);
56 public void process(HttpRequest httpRequest, HttpContext httpContext) throws HttpException, IOException {
57 previousInvocationId = LogFieldsMdcHandler.getInstance().getKeyInvocationId();
58 super.pre(httpRequest, httpRequest);