diff options
Diffstat (limited to 'openecomp-be/backend')
3 files changed, 110 insertions, 53 deletions
diff --git a/openecomp-be/backend/openecomp-sdc-action-manager/src/main/java/org/openecomp/sdc/action/impl/ActionManagerImpl.java b/openecomp-be/backend/openecomp-sdc-action-manager/src/main/java/org/openecomp/sdc/action/impl/ActionManagerImpl.java index a317d41a50..bc7a6f4f64 100644 --- a/openecomp-be/backend/openecomp-sdc-action-manager/src/main/java/org/openecomp/sdc/action/impl/ActionManagerImpl.java +++ b/openecomp-be/backend/openecomp-sdc-action-manager/src/main/java/org/openecomp/sdc/action/impl/ActionManagerImpl.java @@ -88,13 +88,7 @@ import org.openecomp.sdc.action.dao.types.ActionArtifactEntity; import org.openecomp.sdc.action.dao.types.ActionEntity; import org.openecomp.sdc.action.errors.ActionErrorConstants; import org.openecomp.sdc.action.errors.ActionException; -import org.openecomp.sdc.action.logging.StatusCode; -import org.openecomp.sdc.action.types.Action; -import org.openecomp.sdc.action.types.ActionArtifact; -import org.openecomp.sdc.action.types.ActionArtifactProtection; -import org.openecomp.sdc.action.types.ActionStatus; -import org.openecomp.sdc.action.types.ActionSubOperation; -import org.openecomp.sdc.action.types.OpenEcompComponent; +import org.openecomp.sdc.action.types.*; import org.openecomp.sdc.common.errors.CoreException; import org.openecomp.sdc.logging.api.Logger; import org.openecomp.sdc.logging.api.LoggerFactory; @@ -111,6 +105,15 @@ import org.openecomp.sdc.versioning.types.VersionInfo; import org.openecomp.sdc.versioning.types.VersionableEntityAction; import org.slf4j.MDC; +import java.util.*; + +import static org.onap.logging.ref.slf4j.ONAPLogConstants.ResponseStatus.COMPLETE; +import static org.onap.logging.ref.slf4j.ONAPLogConstants.ResponseStatus.ERROR; +import static org.openecomp.sdc.action.ActionConstants.*; +import static org.openecomp.sdc.action.errors.ActionErrorConstants.*; +import static org.openecomp.sdc.action.util.ActionUtil.*; +import static org.openecomp.sdc.versioning.dao.types.Version.VERSION_STRING_VIOLATION_MSG; + /** * Manager Implementation for {@link ActionManager Action Library Operations} * <br> @@ -272,7 +275,7 @@ public class ActionManagerImpl implements ActionManager { "entering deleteAction with actionInvariantUuId = " + actionInvariantUuId + " and user = " + user); actionLogPreProcessor(ActionSubOperation.DELETE_ACTION, TARGET_ENTITY_API); versioningManager.delete(ACTION_VERSIONABLE_TYPE, actionInvariantUuId, user); - actionLogPostProcessor(StatusCode.COMPLETE); + actionLogPostProcessor(COMPLETE); log.metrics(""); actionDao.deleteAction(actionInvariantUuId); } catch (CoreException ce) { @@ -295,12 +298,12 @@ public class ActionManagerImpl implements ActionManager { try { actionLogPreProcessor(ActionSubOperation.VALIDATE_ACTION_UNIQUE_NAME, TARGET_ENTITY_API); uniqueValueUtil.validateUniqueValue(ActionConstants.UniqueValues.ACTION_NAME, action.getName()); - actionLogPostProcessor(StatusCode.COMPLETE); + actionLogPostProcessor(COMPLETE); } catch (CoreException exception) { String errorDesc = String.format(ACTION_ENTITY_UNIQUE_VALUE_MSG, ActionConstants.UniqueValues.ACTION_NAME, action.getName()); log.error(errorDesc, exception); - actionLogPostProcessor(StatusCode.ERROR, ACTION_ENTITY_UNIQUE_VALUE_ERROR, errorDesc, false); + actionLogPostProcessor(ERROR, ACTION_ENTITY_UNIQUE_VALUE_ERROR, errorDesc, false); throw new ActionException(ACTION_ENTITY_UNIQUE_VALUE_ERROR, errorDesc); } finally { log.metrics(""); @@ -312,7 +315,7 @@ public class ActionManagerImpl implements ActionManager { actionLogPreProcessor(ActionSubOperation.CREATE_ACTION_VERSION, TARGET_ENTITY_API); Version version = versioningManager.create(ACTION_VERSIONABLE_TYPE, action.getActionInvariantUuId(), user); - actionLogPostProcessor(StatusCode.COMPLETE); + actionLogPostProcessor(COMPLETE); log.metrics(""); action.setVersion(version.toString()); @@ -322,7 +325,7 @@ public class ActionManagerImpl implements ActionManager { actionLogPreProcessor(ActionSubOperation.CREATE_ACTION_UNIQUE_VALUE, TARGET_ENTITY_API); uniqueValueUtil.createUniqueValue(ActionConstants.UniqueValues.ACTION_NAME, action.getName()); - actionLogPostProcessor(StatusCode.COMPLETE); + actionLogPostProcessor(COMPLETE); log.metrics(""); return action; @@ -346,7 +349,7 @@ public class ActionManagerImpl implements ActionManager { actionLogPreProcessor(ActionSubOperation.GET_ACTION_VERSION, TARGET_ENTITY_API); VersionInfo versionInfo = versioningManager.getEntityVersionInfo(ACTION_VERSIONABLE_TYPE, invariantUuId, user, VersionableEntityAction.Write); - actionLogPostProcessor(StatusCode.COMPLETE); + actionLogPostProcessor(COMPLETE); log.metrics(""); Version activeVersion = versionInfo.getActiveVersion(); @@ -382,7 +385,7 @@ public class ActionManagerImpl implements ActionManager { log.debug("entering checkout for Action with invariantUUID= " + invariantUuId + BY_USER + user); actionLogPreProcessor(ActionSubOperation.CHECKOUT_ACTION, TARGET_ENTITY_API); version = versioningManager.checkout(ACTION_VERSIONABLE_TYPE, invariantUuId, user); - actionLogPostProcessor(StatusCode.COMPLETE); + actionLogPostProcessor(COMPLETE); log.metrics(""); actionEntity = updateUniqueIdForVersion(invariantUuId, version, ActionStatus.Locked.name(), user); @@ -393,7 +396,7 @@ public class ActionManagerImpl implements ActionManager { actionLogPreProcessor(ActionSubOperation.GET_ACTION_VERSION, TARGET_ENTITY_DB); VersionInfoEntity versionInfoEntity = versionInfoDao .get(new VersionInfoEntity(ACTION_VERSIONABLE_TYPE, invariantUuId)); - actionLogPostProcessor(StatusCode.COMPLETE); + actionLogPostProcessor(COMPLETE); log.metrics(""); String checkoutUser = versionInfoEntity.getCandidate() .getUser(); @@ -427,7 +430,7 @@ public class ActionManagerImpl implements ActionManager { // Get list of uploaded artifacts in this checked out version VersionInfoEntity versionInfoEntity = versionInfoDao .get(new VersionInfoEntity(ACTION_VERSIONABLE_TYPE, invariantUuId)); - actionLogPostProcessor(StatusCode.COMPLETE); + actionLogPostProcessor(COMPLETE); log.metrics(""); if (versionInfoEntity == null) { throw new CoreException(new EntityNotExistErrorBuilder(ACTION_VERSIONABLE_TYPE, invariantUuId).build()); @@ -443,27 +446,27 @@ public class ActionManagerImpl implements ActionManager { actionLogPreProcessor(ActionSubOperation.GET_ACTIONENTITY_BY_VERSION, TARGET_ENTITY_DB); Action action = actionDao.get(new ActionEntity(invariantUuId, activeVersion)) .toDto(); - actionLogPostProcessor(StatusCode.COMPLETE); + actionLogPostProcessor(COMPLETE); log.metrics(""); // Perform undo checkout on the action actionLogPreProcessor(ActionSubOperation.UNDO_CHECKOUT_ACTION, TARGET_ENTITY_API); version = versioningManager.undoCheckout(ACTION_VERSIONABLE_TYPE, invariantUuId, user); - actionLogPostProcessor(StatusCode.COMPLETE); + actionLogPostProcessor(COMPLETE); log.metrics(""); if (version.equals(new Version(0, 0))) { actionLogPreProcessor(ActionSubOperation.DELETE_UNIQUEVALUE, TARGET_ENTITY_API); UniqueValueUtil uniqueValueUtil = new UniqueValueUtil(uniqueValueDao); uniqueValueUtil.deleteUniqueValue(ActionConstants.UniqueValues.ACTION_NAME, action.getName()); - actionLogPostProcessor(StatusCode.COMPLETE); + actionLogPostProcessor(COMPLETE); log.metrics(""); actionLogPreProcessor(ActionSubOperation.DELETE_ACTIONVERSION, TARGET_ENTITY_DB); // Added for the case where Create->Undo_Checkout->Checkout // should not get the action versionInfoDao.delete(new VersionInfoEntity(ACTION_VERSIONABLE_TYPE, invariantUuId)); - actionLogPostProcessor(StatusCode.COMPLETE); + actionLogPostProcessor(COMPLETE); log.metrics(""); } @@ -476,7 +479,7 @@ public class ActionManagerImpl implements ActionManager { getEffectiveVersion(activeVersion.toString())); actionLogPreProcessor(ActionSubOperation.DELETE_ARTIFACT, TARGET_ENTITY_DB); actionArtifactDao.delete(artifactDeleteEntity); - actionLogPostProcessor(StatusCode.COMPLETE); + actionLogPostProcessor(COMPLETE); log.metrics(""); } } @@ -503,7 +506,7 @@ public class ActionManagerImpl implements ActionManager { log.debug("entering checkin for Action with invariantUUID= " + invariantUuId + BY_USER + user); actionLogPreProcessor(ActionSubOperation.CHECKIN_ACTION, TARGET_ENTITY_API); version = versioningManager.checkin(ACTION_VERSIONABLE_TYPE, invariantUuId, user, null); - actionLogPostProcessor(StatusCode.COMPLETE); + actionLogPostProcessor(COMPLETE); log.metrics(""); actionEntity = updateStatusForVersion(invariantUuId, version, ActionStatus.Available.name(), user); } catch (CoreException exception) { @@ -530,7 +533,7 @@ public class ActionManagerImpl implements ActionManager { log.debug("entering submit for Action with invariantUUID= " + invariantUuId + BY_USER + user); actionLogPreProcessor(ActionSubOperation.SUBMIT_ACTION, TARGET_ENTITY_API); version = versioningManager.submit(ACTION_VERSIONABLE_TYPE, invariantUuId, user, null); - actionLogPostProcessor(StatusCode.COMPLETE); + actionLogPostProcessor(COMPLETE); log.metrics(""); actionEntity = updateUniqueIdForVersion(invariantUuId, version, ActionStatus.Final.name(), user); } catch (CoreException exception) { @@ -601,13 +604,13 @@ public class ActionManagerImpl implements ActionManager { actionLogPreProcessor(ActionSubOperation.GET_ACTION_VERSION, TARGET_ENTITY_DB); VersionInfo versionInfo = versioningManager.getEntityVersionInfo(ACTION_VERSIONABLE_TYPE, actionInvariantUuId, user, VersionableEntityAction.Write); - actionLogPostProcessor(StatusCode.COMPLETE); + actionLogPostProcessor(COMPLETE); log.metrics(""); Version activeVersion = versionInfo.getActiveVersion(); actionLogPreProcessor(ActionSubOperation.GET_ACTIONENTITY_BY_ACTIONINVID, TARGET_ENTITY_DB); Action action = actionDao.get(new ActionEntity(actionInvariantUuId, activeVersion)) .toDto(); - actionLogPostProcessor(StatusCode.COMPLETE); + actionLogPostProcessor(COMPLETE); log.metrics(""); String artifactUuId = generateActionArtifactUuId(action, artifact.getArtifactName()); // Check for Unique document name @@ -675,7 +678,7 @@ public class ActionManagerImpl implements ActionManager { actionEntity.setData(data); actionLogPreProcessor(ActionSubOperation.UPDATE_ACTION, TARGET_ENTITY_DB); actionDao.update(actionEntity); - actionLogPostProcessor(StatusCode.COMPLETE, null, "", false); + actionLogPostProcessor(COMPLETE, null, "", false); log.metrics(""); // delete Artifact if it's upload and delete action on same checkout // version @@ -688,7 +691,7 @@ public class ActionManagerImpl implements ActionManager { actionLogPreProcessor(ActionSubOperation.DELETE_ACTION_ARTIFACT, TARGET_ENTITY_DB); actionArtifactDao.delete(artifactDeleteEntity); } - actionLogPostProcessor(StatusCode.COMPLETE, null, "", false); + actionLogPostProcessor(COMPLETE, null, "", false); log.metrics(""); } @@ -716,13 +719,13 @@ public class ActionManagerImpl implements ActionManager { actionLogPreProcessor(ActionSubOperation.GET_ACTION_VERSION, TARGET_ENTITY_API); VersionInfo versionInfo = versioningManager.getEntityVersionInfo(ACTION_VERSIONABLE_TYPE, actionInvariantUuId, user, VersionableEntityAction.Write); - actionLogPostProcessor(StatusCode.COMPLETE, null, "", false); + actionLogPostProcessor(COMPLETE, null, "", false); log.metrics(""); Version activeVersion = versionInfo.getActiveVersion(); actionLogPreProcessor(ActionSubOperation.GET_ACTIONENTITY_BY_ACTIONINVID, TARGET_ENTITY_DB); Action action = actionDao.get(new ActionEntity(actionInvariantUuId, activeVersion)) .toDto(); - actionLogPostProcessor(StatusCode.COMPLETE, null, "", false); + actionLogPostProcessor(COMPLETE, null, "", false); log.metrics(""); List<ActionArtifact> actionArtifacts = action.getArtifacts(); ActionArtifact artifactMetadataByUuId = getArtifactMetadataFromAction(actionArtifacts, @@ -903,7 +906,7 @@ public class ActionManagerImpl implements ActionManager { actionLogPreProcessor(ActionSubOperation.GET_VERSIONINFO_FOR_ALL_ACTIONS, TARGET_ENTITY_API); Map<String, VersionInfo> actionVersionMap = versioningManager.listEntitiesVersionInfo(ACTION_VERSIONABLE_TYPE, "", VersionableEntityAction.Read); - actionLogPostProcessor(StatusCode.COMPLETE); + actionLogPostProcessor(COMPLETE); log.metrics(""); for (Action action : actions) { if (action.getStatus() == ActionStatus.Deleted) { @@ -1071,7 +1074,7 @@ public class ActionManagerImpl implements ActionManager { actionLogPreProcessor(ActionSubOperation.GET_ACTIONENTITY_BY_VERSION, TARGET_ENTITY_DB); entity = actionDao .get(new ActionEntity(invariantUuId != null ? invariantUuId.toUpperCase() : null, version)); - actionLogPostProcessor(StatusCode.COMPLETE); + actionLogPostProcessor(COMPLETE); log.metrics(""); } log.debug("exit getActionsEntityByVersion with invariantUuId= " + invariantUuId + AND_VERSION + version); @@ -1128,7 +1131,7 @@ public class ActionManagerImpl implements ActionManager { actionEntity.setTimestamp(getCurrentTimeStampUtc()); actionLogPreProcessor(ActionSubOperation.UPDATE_ACTION, TARGET_ENTITY_DB); actionDao.update(actionEntity); - actionLogPostProcessor(StatusCode.COMPLETE); + actionLogPostProcessor(COMPLETE); log.metrics(""); } @@ -1164,7 +1167,7 @@ public class ActionManagerImpl implements ActionManager { actionEntity.setTimestamp(getCurrentTimeStampUtc()); actionLogPreProcessor(ActionSubOperation.UPDATE_ACTION, TARGET_ENTITY_DB); actionDao.update(actionEntity); - actionLogPostProcessor(StatusCode.COMPLETE); + actionLogPostProcessor(COMPLETE); log.metrics(""); } log.debug("exit updateStatusForVersion with invariantUuId= " + invariantUuId + AND_VERSION + version diff --git a/openecomp-be/backend/openecomp-sdc-security-util/pom.xml b/openecomp-be/backend/openecomp-sdc-security-util/pom.xml index 3b2fd1da53..78fa00a17b 100644 --- a/openecomp-be/backend/openecomp-sdc-security-util/pom.xml +++ b/openecomp-be/backend/openecomp-sdc-security-util/pom.xml @@ -88,6 +88,12 @@ <version>1.7.4</version> <scope>test</scope> </dependency> + + <dependency> + <groupId>org.onap.logging-analytics</groupId> + <artifactId>logging-slf4j</artifactId> + <version>1.4.0</version> + </dependency> </dependencies> </project>
\ No newline at end of file diff --git a/openecomp-be/backend/openecomp-sdc-security-util/src/main/java/org/openecomp/sdc/securityutil/filters/SessionValidationFilter.java b/openecomp-be/backend/openecomp-sdc-security-util/src/main/java/org/openecomp/sdc/securityutil/filters/SessionValidationFilter.java index 1684df4017..de235bff89 100644 --- a/openecomp-be/backend/openecomp-sdc-security-util/src/main/java/org/openecomp/sdc/securityutil/filters/SessionValidationFilter.java +++ b/openecomp-be/backend/openecomp-sdc-security-util/src/main/java/org/openecomp/sdc/securityutil/filters/SessionValidationFilter.java @@ -20,11 +20,14 @@ package org.openecomp.sdc.securityutil.filters; +import org.onap.logging.ref.slf4j.ONAPLogConstants; import org.openecomp.sdc.securityutil.AuthenticationCookieUtils; import org.openecomp.sdc.securityutil.CipherUtilException; import org.openecomp.sdc.securityutil.ISessionValidationFilterConfiguration; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.slf4j.MDC; +import org.apache.commons.lang.StringUtils; import javax.servlet.Filter; import javax.servlet.FilterChain; @@ -38,6 +41,7 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Arrays; import java.util.List; +import java.util.UUID; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -46,6 +50,19 @@ public abstract class SessionValidationFilter implements Filter { private ISessionValidationFilterConfiguration filterConfiguration; private List<String> excludedUrls; + private static final String REQUEST_ID = ONAPLogConstants.MDCs.REQUEST_ID; + private static final String ONAP_REQUEST_ID_HEADER = ONAPLogConstants.Headers.REQUEST_ID; + private static final String REQUEST_ID_HEADER = "X-RequestID"; + private static final String TRANSACTION_ID_HEADER = "X-TransactionId"; + private static final String ECOMP_REQUEST_ID_HEADER = "X-ECOMP-RequestID"; + + private static final String PARTNER_NAME = ONAPLogConstants.MDCs.PARTNER_NAME; + private static final String USER_ID_HEADER = "USER_ID"; + private static final String ONAP_PARTNER_NAME_HEADER = ONAPLogConstants.Headers.PARTNER_NAME; + private static final String USER_AGENT_HEADER = "User-Agent"; + private static final String UNKNOWN = "UNKNOWN"; + + public abstract ISessionValidationFilterConfiguration getFilterConfiguration(); protected abstract Cookie addRoleToCookie(Cookie updatedCookie); protected abstract boolean isRoleValid(Cookie cookie); @@ -61,51 +78,45 @@ public abstract class SessionValidationFilter implements Filter { final HttpServletRequest httpRequest = (HttpServletRequest) servletRequest; final HttpServletResponse httpResponse = (HttpServletResponse) servletResponse; - long starTime = System.nanoTime(); + long startTime = System.nanoTime(); + fillMDCFromHeaders(httpRequest); log.debug("SessionValidationFilter: Validation started, received request with URL {}", httpRequest.getRequestURL()); // request preprocessing - boolean isContinueProcessing = preProcessingRequest(servletRequest, servletResponse, filterChain, httpRequest, httpResponse); + boolean isContinueProcessing = preProcessingRequest(servletRequest, servletResponse, filterChain, httpRequest, httpResponse, startTime); List<Cookie> cookies = null; + Cookie extractedCookie = null; // request processing if (isContinueProcessing) { cookies = extractAuthenticationCookies(httpRequest.getCookies()); - isContinueProcessing = processRequest(httpRequest, httpResponse, cookies.get(0)); + extractedCookie = cookies.get(0); + isContinueProcessing = processRequest(httpRequest, httpResponse, extractedCookie); } // response processing if(isContinueProcessing){ log.debug("SessionValidationFilter: Cookie from request {} is valid, passing request to session extension ...", httpRequest.getRequestURL()); - Cookie updatedCookie = processResponse(cookies.get(cookies.size()-1)); - + Cookie updatedCookie = processResponse(extractedCookie); cleanResponceFromLeftoverCookies(httpResponse, cookies); - - // Use responce wrapper if servlet remove Cookie header from responce -// OutputStream out = httpResponse.getOutputStream(); -// ResponceWrapper responceWrapper = new ResponceWrapper(httpResponse); - log.debug("SessionValidationFilter: request {} passed all validations, passing request to endpoint ...", httpRequest.getRequestURL()); httpResponse.addCookie(updatedCookie); + long durationSec = TimeUnit.NANOSECONDS.toSeconds(System.nanoTime() - startTime); + long durationMil = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - startTime); + log.debug("SessionValidationFilter: Validation ended, running time for URL {} is: {} seconds {} miliseconds", httpRequest.getPathInfo(), durationSec, durationMil); filterChain.doFilter(servletRequest, httpResponse); - - // Use responce wrapper if servlet remove Cookie header from responce -// responceWrapper.addCookie(updatedCookie); -// httpResponse.setContentLength(responceWrapper.getData().length); -// out.write(responceWrapper.getData()); -// out.close(); } - long durationSec = TimeUnit.NANOSECONDS.toSeconds(System.nanoTime() - starTime); - long durationMil = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - starTime); - log.debug("SessionValidationFilter: Validation ended, running time for URL {} is: {} seconds {} miliseconds", httpRequest.getPathInfo(), durationSec, durationMil); } - private boolean preProcessingRequest(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain, HttpServletRequest httpRequest, HttpServletResponse httpResponse) throws IOException, ServletException { + private boolean preProcessingRequest(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain, HttpServletRequest httpRequest, HttpServletResponse httpResponse, long startTime) throws IOException, ServletException { boolean isPreProcessingSucceeded = true; if (isUrlFromWhiteList(httpRequest)) { log.debug("SessionValidationFilter: URL {} excluded from access validation , passing request to endpoint ... ", httpRequest.getRequestURL()); + long durationSec = TimeUnit.NANOSECONDS.toSeconds(System.nanoTime() - startTime); + long durationMil = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - startTime); + log.debug("SessionValidationFilter: Validation ended, running time for URL {} is: {} seconds {} miliseconds", httpRequest.getPathInfo(), durationSec, durationMil); filterChain.doFilter(servletRequest, servletResponse); isPreProcessingSucceeded = false; @@ -207,6 +218,43 @@ public abstract class SessionValidationFilter implements Filter { } } + public static void fillMDCFromHeaders(HttpServletRequest httpServletRequest) { + fillRequestIdFromHeader(httpServletRequest); + fillPartnerNameFromHeader(httpServletRequest); + + } + + private static void fillRequestIdFromHeader(HttpServletRequest httpServletRequest){ + if (MDC.get(REQUEST_ID) == null) { + if (StringUtils.isNotEmpty(httpServletRequest.getHeader(ONAP_REQUEST_ID_HEADER))) { + MDC.put(REQUEST_ID, httpServletRequest.getHeader(ONAP_REQUEST_ID_HEADER)); + } else if (StringUtils.isNotEmpty(httpServletRequest.getHeader(REQUEST_ID_HEADER))) { + MDC.put(REQUEST_ID, httpServletRequest.getHeader(REQUEST_ID_HEADER)); + } else if (StringUtils.isNotEmpty(httpServletRequest.getHeader(TRANSACTION_ID_HEADER))) { + MDC.put(REQUEST_ID, httpServletRequest.getHeader(TRANSACTION_ID_HEADER)); + } else if (StringUtils.isNotEmpty(httpServletRequest.getHeader(ECOMP_REQUEST_ID_HEADER))) { + MDC.put(REQUEST_ID, httpServletRequest.getHeader(ECOMP_REQUEST_ID_HEADER)); + } else { + MDC.put(REQUEST_ID, UUID.randomUUID().toString()); + } + } + } + + private static void fillPartnerNameFromHeader(HttpServletRequest httpServletRequest){ + if (MDC.get(PARTNER_NAME) == null) { + if (StringUtils.isNotEmpty(httpServletRequest.getHeader(USER_ID_HEADER))) { + MDC.put(PARTNER_NAME, httpServletRequest.getHeader(USER_ID_HEADER)); + } else if (StringUtils.isNotEmpty(httpServletRequest.getHeader(ONAP_PARTNER_NAME_HEADER))) { + MDC.put(PARTNER_NAME, httpServletRequest.getHeader(ONAP_PARTNER_NAME_HEADER)); + } else if (StringUtils.isNotEmpty(httpServletRequest.getHeader(USER_AGENT_HEADER))) { + MDC.put(PARTNER_NAME, httpServletRequest.getHeader(USER_AGENT_HEADER)); + } else { + MDC.put(PARTNER_NAME, UNKNOWN); + } + } + } + + @Override public void destroy() { |