import javax.servlet.http.HttpServletRequestWrapper;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotNull;
-import org.onap.logging.ref.slf4j.ONAPLogConstants.MDCs;
import org.onap.vid.logging.Headers;
import org.onap.vid.logging.RequestIdHeader;
-import org.slf4j.MDC;
import org.springframework.web.filter.GenericFilterBean;
@WebFilter(urlPatterns = "/*")
if (isWrapNeeded(highestPriorityHeader, originalRequestId)) {
// Copy originalRequestId to the promised header value
- request = new PromiseRequestIdRequestWrapper(httpRequest,
- firstValidUuidOrElse(originalRequestId, requestIdFromMDC(), UUID::randomUUID));
+ request = new PromiseRequestIdRequestWrapper(httpRequest, toUuidOrElse(originalRequestId, UUID::randomUUID));
}
return request;
}
- private String requestIdFromMDC() {
- return MDC.get(MDCs.REQUEST_ID);
- }
-
private boolean verifyAndValidateUuid(String value) {
return isNotEmpty(value) && uuidRegex.matcher(value).matches();
}
return !headerExistsAndValid;
}
- UUID firstValidUuidOrElse(String uuid1, String uuid2, Supplier<UUID> uuidSupplier) {
- return toUuidOrElse(uuid1, () -> toUuidOrElse(uuid2, uuidSupplier));
- }
-
UUID toUuidOrElse(String uuid, Supplier<UUID> uuidSupplier) {
if (verifyAndValidateUuid(uuid)) {
try {
import org.mockito.ArgumentCaptor;
import org.mockito.Mockito;
import org.mockito.stubbing.Answer;
-import org.onap.logging.ref.slf4j.ONAPLogConstants.MDCs;
import org.onap.portalsdk.core.web.support.UserUtils;
import org.onap.vid.logging.RequestIdHeader;
-import org.slf4j.MDC;
import org.springframework.mock.web.MockHttpServletResponse;
-import org.testng.annotations.AfterMethod;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
private final PromiseRequestIdFilter promiseRequestIdFilter = new PromiseRequestIdFilter();
- @AfterMethod
- public void tearDown() {
- MDC.remove(MDCs.REQUEST_ID);
- }
-
@Test
- public void givenMdcValueAndRequestIdHeader_headerValueNotChanged() throws IOException, ServletException {
+ public void givenRequestIdHeader_headerValueNotChanged() throws IOException, ServletException {
final String someTxId = "863850e2-8545-4efd-94b8-afba5f52b3d5";
- final String mdcTxId = "ed752ff1-3970-4f18-8219-2d821fa4eaea";
-
- MDC.put(MDCs.REQUEST_ID, mdcTxId);
final ImmutableMap<String, String> incomingRequestHeaders = ImmutableMap.of(
anotherHeader, anotherValue,
buildRequestThenRunThroughFilterAndAssertResultRequestHeaders(incomingRequestHeaders, UserUtils::getRequestId);
}
- @Test
- public void givenMdcValueAndNoRequestIdHeader_headerValueWasFromMDC() throws IOException, ServletException {
-
- final String mdcTxId = "ed752ff1-3970-4f18-8219-2d821fa4eaea";
-
- MDC.put(MDCs.REQUEST_ID, mdcTxId);
-
- final ImmutableMap<String, String> incomingRequestHeaders = ImmutableMap.of(
- anotherHeader, anotherValue
- );
-
- buildRequestThenRunThroughFilterAndAssertResultRequestHeaders(incomingRequestHeaders, specificTxId(mdcTxId));
- }
-
@Test
public void givenTwoRequestIdHeader_onapHeaderValueIsUsed() throws IOException, ServletException {