Remove userid check from workflow-designer 45/141245/2
authorFiete Ostkamp <Fiete.Ostkamp@telekom.de>
Wed, 11 Jun 2025 12:53:57 +0000 (14:53 +0200)
committerLukasz Rajewski <lukasz.rajewski@t-mobile.pl>
Wed, 11 Jun 2025 13:50:32 +0000 (13:50 +0000)
- when the user_id is not set, use cs0008 as the id

Issue-ID: SDC-4735
Change-Id: I05e345d97108587db9acd9234e7102d89d541a2b
Signed-off-by: Fiete Ostkamp <Fiete.Ostkamp@telekom.de>
sdc-workflow-designer-be/src/main/java/org/onap/sdc/workflow/server/resolvers/UserIdResolver.java
sdc-workflow-designer-be/src/test/java/org/onap/sdc/workflow/api/WorkflowControllerTest.java
sdc-workflow-designer-be/src/test/java/org/onap/sdc/workflow/server/resolvers/UserIdResolverTest.java

index 80cb07a..8b73a6a 100644 (file)
@@ -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
+}
index 2368d68..d508bcc 100644 (file)
@@ -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)));
index 5fcb11e..1e528a9 100644 (file)
@@ -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
+}