Update Logging
[so.git] / common / src / main / java / org / onap / so / logging / cxf / interceptor / SOAPLoggingOutInterceptor.java
1 package org.onap.so.logging.cxf.interceptor;
2
3
4 import java.util.Collections;
5 import java.util.Map;
6 import java.util.UUID;
7 import java.util.stream.Collectors;
8 import javax.servlet.http.HttpServletRequest;
9 import javax.xml.namespace.QName;
10 import org.apache.cxf.binding.soap.SoapMessage;
11 import org.apache.cxf.binding.soap.interceptor.AbstractSoapInterceptor;
12 import org.apache.cxf.interceptor.Fault;
13 import org.apache.cxf.message.Message;
14 import org.apache.cxf.phase.Phase;
15 import org.apache.cxf.service.model.MessageInfo;
16 import org.apache.cxf.service.model.OperationInfo;
17 import org.apache.cxf.transport.http.AbstractHTTPDestination;
18 import org.onap.logging.ref.slf4j.ONAPLogConstants;
19 import org.onap.so.exceptions.MSOException;
20 import org.onap.so.logging.jaxrs.filter.JaxRsFilterLogging;
21 import org.onap.so.logging.jaxrs.filter.MDCSetup;
22 import org.slf4j.Logger;
23 import org.slf4j.LoggerFactory;
24 import org.slf4j.MDC;
25 import org.springframework.beans.factory.annotation.Autowired;
26 import org.springframework.stereotype.Component;
27
28 @Component
29 public class SOAPLoggingOutInterceptor extends AbstractSoapInterceptor{
30
31     private static final String _500 = "500";
32
33     protected static Logger logger = LoggerFactory.getLogger(SOAPLoggingOutInterceptor.class);
34     
35     @Autowired
36     MDCSetup mdcSetup;
37     
38     public SOAPLoggingOutInterceptor() {
39         super(Phase.WRITE);
40     }
41
42     @Override
43     public void handleMessage(SoapMessage message) throws Fault {
44         try {
45             Exception ex = message.getContent(Exception.class);
46             if (ex == null) {
47                 MDC.put(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE, ONAPLogConstants.ResponseStatus.COMPLETED.toString());
48             }else{
49                 int responseCode = 0;
50                 responseCode = (int) message.get(Message.RESPONSE_CODE);
51                 if(responseCode != 0 )
52                     MDC.put(ONAPLogConstants.MDCs.RESPONSE_CODE, String.valueOf(responseCode));
53                 else
54                     MDC.put(ONAPLogConstants.MDCs.RESPONSE_CODE, _500);
55                 
56                 MDC.put(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE, ONAPLogConstants.ResponseStatus.ERROR.toString());
57             }
58             logger.info(ONAPLogConstants.Markers.EXIT, "Exiting");
59         } catch (Exception e) {
60             logger.warn("Error in incoming SOAP Message Inteceptor", e);
61         }
62     }
63 }