diff options
Diffstat (limited to 'common-app-api/src/main/java/org/openecomp/sdc/common/ecomplogwrapper/EcompLoggerSdcAudit.java')
-rw-r--r-- | common-app-api/src/main/java/org/openecomp/sdc/common/ecomplogwrapper/EcompLoggerSdcAudit.java | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/common-app-api/src/main/java/org/openecomp/sdc/common/ecomplogwrapper/EcompLoggerSdcAudit.java b/common-app-api/src/main/java/org/openecomp/sdc/common/ecomplogwrapper/EcompLoggerSdcAudit.java new file mode 100644 index 0000000000..57499b340d --- /dev/null +++ b/common-app-api/src/main/java/org/openecomp/sdc/common/ecomplogwrapper/EcompLoggerSdcAudit.java @@ -0,0 +1,92 @@ +package org.openecomp.sdc.common.ecomplogwrapper; + +import javax.servlet.http.HttpServletRequest; +import javax.ws.rs.container.ContainerRequestContext; +import javax.ws.rs.core.MultivaluedMap; +import javax.ws.rs.core.Response; + +import org.openecomp.sdc.common.api.Constants; +import org.openecomp.sdc.common.ecomplog.EcompLoggerAudit; +import org.openecomp.sdc.common.ecomplog.Enums.LogLevel; +import org.openecomp.sdc.common.ecomplog.Enums.Severity; +import org.slf4j.MDC; + + +/** + * Created by dd4296 on 12/19/2017. + * + * audit log for asdc using the ecomplog library + * this is adapted for filter classes + */ +public class EcompLoggerSdcAudit extends EcompLoggerSdcUtilBase { + + private static String AUDIT_ON = "auditOn"; + private String className; + + public EcompLoggerSdcAudit(String className) { + this.className = className; + } + + public void startLog() { + EcompLoggerAudit + .getInstance() + .clear() + .startTimer(); + MDC.put(AUDIT_ON, "true"); + } + + public static boolean isFlowBeingTakenCare(){ + try + { + if (MDC.get(AUDIT_ON).equals("true")){ + return true; + } + return false; + } + catch (Exception E) + { + return false; + } + } + + public void log(HttpServletRequest sr, + ContainerRequestContext requestContext, + Response.StatusType statusInfo, + MultivaluedMap<String, Object> responseHeaders, + LogLevel errorLevel, + Severity securityLevel, + String message) { + + try { + EcompLoggerAudit.getInstance() + .stopTimer() + .setRemoteHost(sr.getRemoteAddr()) + .setServiceName(getServiceName(requestContext)) + .setResponseCode(convertHttpCodeToErrorCode(statusInfo.getStatusCode())) + .setStatusCode(Integer.toString(statusInfo.getStatusCode())) + .setResponseDesc(statusInfo.getReasonPhrase()) + .setKeyRequestId(getRequestIDfromHeaders(responseHeaders.get(Constants.X_ECOMP_REQUEST_ID_HEADER))) + + .setPartnerName(getPartnerName( + requestContext.getHeaderString("user-agent"), + requestContext.getHeaderString("USER_ID"), + getUrl(requestContext))) + + .setInstanceUUID(requestContext.getHeaderString(Constants.X_ECOMP_INSTANCE_ID_HEADER)) + + .setOptServiceInstanceId(requestContext.getHeaderString(Constants.X_ECOMP_SERVICE_ID_HEADER)) + .setOptClassName(className) + .setOptAlertSeverity(securityLevel) + .setOptCustomField1(requestContext.getMethod() + ": " + getUrl(requestContext)) + .setOptCustomField2(Integer.toString(statusInfo.getStatusCode())) + .log(errorLevel, message); + } + catch (Exception E) + { + log.warn("Faild to write to Audit Log. Original Message: {}", message); + } + finally { + MDC.put(AUDIT_ON,"false"); + } + } +} |