From 543dbaf1d21cab6b179e9f944c87f4d54c067b8d Mon Sep 17 00:00:00 2001 From: Fiete Ostkamp Date: Wed, 11 Jun 2025 14:53:57 +0200 Subject: [PATCH] Remove userid check from workflow-designer - when the user_id is not set, use cs0008 as the id Issue-ID: SDC-4735 Change-Id: I05e345d97108587db9acd9234e7102d89d541a2b Signed-off-by: Fiete Ostkamp --- .../sdc/workflow/server/resolvers/UserIdResolver.java | 8 ++++++-- .../org/onap/sdc/workflow/api/WorkflowControllerTest.java | 3 +++ .../sdc/workflow/server/resolvers/UserIdResolverTest.java | 15 +++++++++------ 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/sdc-workflow-designer-be/src/main/java/org/onap/sdc/workflow/server/resolvers/UserIdResolver.java b/sdc-workflow-designer-be/src/main/java/org/onap/sdc/workflow/server/resolvers/UserIdResolver.java index 80cb07a8..8b73a6af 100644 --- a/sdc-workflow-designer-be/src/main/java/org/onap/sdc/workflow/server/resolvers/UserIdResolver.java +++ b/sdc-workflow-designer-be/src/main/java/org/onap/sdc/workflow/server/resolvers/UserIdResolver.java @@ -28,6 +28,8 @@ import org.springframework.web.context.request.NativeWebRequest; import org.springframework.web.method.support.HandlerMethodArgumentResolver; import org.springframework.web.method.support.ModelAndViewContainer; +import lombok.extern.slf4j.Slf4j; + /** * Resolves a user ID from an HTTP header and injects it into a parameter of type {@link String} annotated with {@link * UserId}. The header is considered mandatory, therefore an error is returned to the client if no user ID was sent. @@ -35,6 +37,7 @@ import org.springframework.web.method.support.ModelAndViewContainer; * @author evitaliy * @since 21 Aug 2018 */ +@Slf4j public class UserIdResolver implements HandlerMethodArgumentResolver { private static final String ERROR_MESSAGE = "Missing mandatory request header '" + USER_ID_HEADER + "'"; @@ -63,9 +66,10 @@ public class UserIdResolver implements HandlerMethodArgumentResolver { HttpServletRequest httpServletRequest = nativeWebRequest.getNativeRequest(HttpServletRequest.class); String userHeader = Objects.requireNonNull(httpServletRequest).getHeader(USER_ID_HEADER); if (userHeader == null) { - throw new ServletRequestBindingException(ERROR_MESSAGE); + log.debug(USER_ID_HEADER + " header not set. Defaulting to cs0008"); + return "cs0008"; } return userHeader; } -} \ No newline at end of file +} diff --git a/sdc-workflow-designer-be/src/test/java/org/onap/sdc/workflow/api/WorkflowControllerTest.java b/sdc-workflow-designer-be/src/test/java/org/onap/sdc/workflow/api/WorkflowControllerTest.java index 2368d683..d508bccf 100644 --- a/sdc-workflow-designer-be/src/test/java/org/onap/sdc/workflow/api/WorkflowControllerTest.java +++ b/sdc-workflow-designer-be/src/test/java/org/onap/sdc/workflow/api/WorkflowControllerTest.java @@ -40,6 +40,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.ArgumentCaptor; @@ -87,6 +88,7 @@ public class WorkflowControllerTest { } @Test + @Disabled("A default user id is now returned when there is no USER_ID header") public void shouldReturnErrorWhenMissingUserIdInGetReqHeader() throws Exception { Workflow workflowMock = createWorkflow(1, true, ArchivingStatus.ACTIVE); mockMvc.perform(get(RestPath.getWorkflowPath(workflowMock.getId())).contentType(APPLICATION_JSON)) @@ -104,6 +106,7 @@ public class WorkflowControllerTest { } @Test + @Disabled("A default user id is now returned when there is no USER_ID header") public void shouldReturnErrorWhenMissingUserIdInListReqHeader() throws Exception { mockMvc.perform(get(RestPath.getWorkflowsPath()).contentType(APPLICATION_JSON)) .andExpect(status().isBadRequest()).andExpect(jsonPath("$.message", is(MISSING_USER_HEADER_ERROR))); diff --git a/sdc-workflow-designer-be/src/test/java/org/onap/sdc/workflow/server/resolvers/UserIdResolverTest.java b/sdc-workflow-designer-be/src/test/java/org/onap/sdc/workflow/server/resolvers/UserIdResolverTest.java index 5fcb11e7..1e528a96 100644 --- a/sdc-workflow-designer-be/src/test/java/org/onap/sdc/workflow/server/resolvers/UserIdResolverTest.java +++ b/sdc-workflow-designer-be/src/test/java/org/onap/sdc/workflow/server/resolvers/UserIdResolverTest.java @@ -31,6 +31,8 @@ import org.springframework.core.MethodParameter; import org.springframework.web.bind.ServletRequestBindingException; import org.springframework.web.context.request.NativeWebRequest; +import lombok.SneakyThrows; + /** * Tests injection of user ID from HTTP headers. * @@ -66,12 +68,13 @@ public class UserIdResolverTest { } @Test + @SneakyThrows public void missingHeaderErrorThrownWhenUserIdHeaderNotPopulated() { - assertThrows(ServletRequestBindingException.class, () -> { - NativeWebRequest webRequestMock = mock(NativeWebRequest.class); - when(webRequestMock.getNativeRequest(HttpServletRequest.class)).thenReturn(mock(HttpServletRequest.class)); - new UserIdResolver().resolveArgument(null, null, webRequestMock, null); - }); + NativeWebRequest webRequestMock = mock(NativeWebRequest.class); + when(webRequestMock.getNativeRequest(HttpServletRequest.class)).thenReturn(mock(HttpServletRequest.class)); + String userId = (String) new UserIdResolver().resolveArgument(null, null, webRequestMock, null); + assertEquals("cs0008", userId); + } @Test @@ -96,4 +99,4 @@ public class UserIdResolverTest { when(methodParameterMock.getParameterType()).thenReturn((Class) String.class); assertTrue(new UserIdResolver().supportsParameter(methodParameterMock)); } -} \ No newline at end of file +} -- 2.16.6