aboutsummaryrefslogtreecommitdiffstats
path: root/common/src/main/java/org/onap/so/logging/jaxrs/filter/SOAuditLogContainerFilter.java
blob: 85925e2725e56c3194b42129d0b60247b0f9e1ea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package org.onap.so.logging.jaxrs.filter;

import javax.annotation.Priority;
import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerResponseContext;
import javax.ws.rs.container.PreMatching;
import javax.ws.rs.core.MultivaluedMap;
import org.onap.logging.filter.base.AuditLogContainerFilter;
import org.onap.logging.filter.base.Constants;
import org.onap.logging.ref.slf4j.ONAPLogConstants;
import org.onap.so.logger.HttpHeadersConstants;
import org.onap.so.logger.LogConstants;
import org.slf4j.MDC;
import org.springframework.stereotype.Component;

@Priority(1)
@PreMatching
@Component
public class SOAuditLogContainerFilter extends AuditLogContainerFilter {

    private static final String ORIGINAL_PARTNER_NAME = "OriginalPartnerName";

    @Override
    protected void additionalPreHandling(ContainerRequestContext request) {
        request.setProperty("requestId", MDC.get(ONAPLogConstants.MDCs.REQUEST_ID));
        MDC.put(ORIGINAL_PARTNER_NAME, MDC.get(ONAPLogConstants.MDCs.PARTNER_NAME));
        String requestorId = request.getHeaders().getFirst("X-RequestorID");
        if (requestorId != null) {
            MDC.put(HttpHeadersConstants.REQUESTOR_ID, requestorId);
        }
        MDC.put(LogConstants.URI_BASE, request.getUriInfo().getBaseUri().toString());
    }

    @Override
    protected void additionalPostHandling(ContainerResponseContext response) {
        MultivaluedMap<String, Object> responseHeaders = response.getHeaders();
        String requestId = MDC.get(ONAPLogConstants.MDCs.REQUEST_ID);
        responseHeaders.add(ONAPLogConstants.Headers.REQUEST_ID, requestId);
        responseHeaders.add(Constants.HttpHeaders.HEADER_REQUEST_ID, requestId);
        responseHeaders.add(Constants.HttpHeaders.TRANSACTION_ID, requestId);
        responseHeaders.add(Constants.HttpHeaders.ECOMP_REQUEST_ID, requestId);
        responseHeaders.add(ONAPLogConstants.Headers.PARTNER_NAME, getProperty(Constants.Property.PARTNER_NAME));
        responseHeaders.add(ONAPLogConstants.Headers.INVOCATION_ID,
                MDC.get(ONAPLogConstants.MDCs.SERVER_INVOCATION_ID));
    }
}