1 package org.openecomp.sdc.common.log.interceptors;
3 import java.io.IOException;
5 import org.apache.http.HttpException;
6 import org.apache.http.HttpMessage;
7 import org.apache.http.HttpRequest;
8 import org.apache.http.HttpRequestInterceptor;
9 import org.apache.http.HttpResponse;
10 import org.apache.http.protocol.HttpContext;
11 import org.onap.logging.filter.base.AbstractMetricLogFilter;
12 import org.onap.logging.ref.slf4j.ONAPLogConstants;
13 import org.openecomp.sdc.common.log.elements.LogFieldsMdcHandler;
15 public class ApacheClientLogRequestInterceptor extends AbstractMetricLogFilter<HttpRequest, HttpResponse, HttpMessage> implements
16 HttpRequestInterceptor {
18 private String previousInvocationId;
21 protected void addHeader(HttpMessage httpMessage, String s, String s1) {
22 httpMessage.addHeader(s, s1);
26 protected String getTargetServiceName(HttpRequest httpRequest) {
27 return httpRequest.getRequestLine().getUri();
31 protected String getServiceName(HttpRequest httpRequest) {
32 return URI.create(httpRequest.getRequestLine().getUri()).getPath();
36 protected int getHttpStatusCode(HttpResponse httpResponse) {
37 return httpResponse.getStatusLine().getStatusCode();
41 protected String getResponseCode(HttpResponse httpResponse) {
42 return String.valueOf(httpResponse.getStatusLine().getStatusCode());
46 protected String getTargetEntity(HttpRequest httpRequest) {
47 //fallback to default value that provided by AbstractMetricLogFilter
52 protected void additionalPre(HttpRequest httpRequest, HttpMessage httpMessage) {
53 String outgoingInvocationId = httpMessage.getFirstHeader(ONAPLogConstants.Headers.INVOCATION_ID).getValue();
54 LogFieldsMdcHandler.getInstance().setOutgoingInvocationId(outgoingInvocationId);
55 LogFieldsMdcHandler.getInstance().setKeyInvocationId(previousInvocationId);
59 public void process(HttpRequest httpRequest, HttpContext httpContext) throws HttpException, IOException {
60 previousInvocationId = LogFieldsMdcHandler.getInstance().getKeyInvocationId();
61 super.pre(httpRequest, httpRequest);