Fix error in userId handling 58/134558/2
authorMichaelMorris <michael.morris@est.tech>
Mon, 15 May 2023 10:26:46 +0000 (11:26 +0100)
committerMichaelMorris <michael.morris@est.tech>
Mon, 15 May 2023 21:40:08 +0000 (22:40 +0100)
Signed-off-by: MichaelMorris <michael.morris@est.tech>
Issue-ID: SDC-4468
Change-Id: Iccc61e54876fea732d82334d0bf21bc485b9e1bb

catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/BaseBusinessLogic.java
catalog-be/src/main/java/org/openecomp/sdc/be/components/validation/UserValidations.java
catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ArtifactsBusinessLogicTest.java
catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ComponentInstanceBusinessLogicTest.java
catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/InputsBusinessLogicTest.java
catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/OutputsBusinessLogicTest.java
catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/PolicyBusinessLogicTest.java
catalog-be/src/test/java/org/openecomp/sdc/be/components/validation/UserValidationsTest.java

index 8b18346..de0f791 100644 (file)
@@ -375,7 +375,7 @@ public abstract class BaseBusinessLogic {
         }
         // verify component last update user is the current user
         String lastUpdaterUserId = component.getLastUpdaterUserId();
-        if (!userId.equals(lastUpdaterUserId)) {
+        if (!userValidations.isSameUser(userId, lastUpdaterUserId)) {
             log.debug("Current user is not last updater, last updater userId: {}, current user userId: {}", lastUpdaterUserId, userId);
             throw new ByActionStatusComponentException(actionStatus);
         }
index cf4f848..3d148f6 100644 (file)
@@ -82,4 +82,8 @@ public class UserValidations {
     public User validateUserExists(final User user) {
         return validateUserExists(user.getUserId());
     }
+    
+    public boolean isSameUser(final String userId1, final String userId2) {
+        return validateUserExists(userId1).getUserId().equals(validateUserExists(userId2).getUserId());
+    }
 }
index 54ccf2b..36d22bc 100644 (file)
@@ -2139,6 +2139,8 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock {
 
         when(userValidations.validateUserExists(Mockito.eq("userId")))
             .thenReturn(user);
+        when(userValidations.isSameUser(Mockito.eq("userId"), Mockito.eq("userId")))
+            .thenReturn(true);
         when(toscaOperationFacade.getToscaFullElement(any()))
             .thenReturn(Either.left(resource));
         when(artifactToscaOperation.getArtifactById(any(), any(), any(), any()))
@@ -2259,6 +2261,8 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock {
 
         when(userValidations.validateUserExists(eq(user.getUserId())))
             .thenReturn(user);
+        when(userValidations.isSameUser(Mockito.eq("userId"), Mockito.eq("userId")))
+            .thenReturn(true);
         when(toscaOperationFacade.getToscaFullElement(eq(componentId)))
             .thenReturn(Either.left(resource));
         when(artifactToscaOperation.getArtifactById(anyString(), anyString(), any(ComponentTypeEnum.class), anyString()))
index f6a86ac..e813924 100644 (file)
@@ -715,6 +715,7 @@ class ComponentInstanceBusinessLogicTest {
 
     private void stubMethods() {
         Mockito.lenient().when(userValidations.validateUserExists(eq(USER_ID))).thenReturn(user);
+        Mockito.lenient().when(userValidations.isSameUser(eq(USER_ID),eq(USER_ID))).thenReturn(true);
         Mockito.lenient().when(componentsUtils
             .convertFromStorageResponse(eq(StorageOperationStatus.GENERAL_ERROR), any(ComponentTypeEnum.class)))
             .thenReturn(ActionStatus.GENERAL_ERROR);
index 953cc3b..5ecc488 100644 (file)
@@ -179,6 +179,7 @@ public class InputsBusinessLogicTest {
         instanceInputMap.put("someInputId", Collections.singletonList(new ComponentInstanceInput()));
         service.setComponentInstancesInputs(instanceInputMap);
         when(userValidations.validateUserExists(eq(USER_ID))).thenReturn(new User());
+        when(userValidations.isSameUser(eq(USER_ID),eq(USER_ID))).thenReturn(true);
         when(userAdminMock.getUser(USER_ID, false)).thenReturn(new User());
     }
 
index cfdd774..ddef267 100644 (file)
@@ -46,6 +46,7 @@ import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
+import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
 import org.openecomp.sdc.be.components.attribute.AttributeDeclarationOrchestrator;
 import org.openecomp.sdc.be.components.impl.exceptions.ByResponseFormatComponentException;
@@ -159,6 +160,7 @@ class OutputsBusinessLogicTest {
         instanceOutputMap.put("someOutputId", Collections.singletonList(new ComponentInstanceOutput()));
         service.setComponentInstancesOutputs(instanceOutputMap);
         when(userValidations.validateUserExists(USER_ID)).thenReturn(new User());
+        when(userValidations.isSameUser(eq(USER_ID),eq(USER_ID))).thenReturn(true);
         when(userAdminMock.getUser(USER_ID, false)).thenReturn(new User());
     }
 
index d0a91e3..83e5267 100644 (file)
@@ -502,6 +502,7 @@ class PolicyBusinessLogicTest {
 
     @Test
     void testDeclarePropertiesAsPoliciesSuccess() {
+        when(userValidations.isSameUser(eq(USER_ID),eq(USER_ID))).thenReturn(true);
         when(toscaOperationFacade.getToscaElement(eq(COMPONENT_ID), Mockito.any(ComponentParametersView.class))).thenReturn(Either.left(resource));
         when(graphLockOperation.lockComponent(any(), any())).thenReturn(StorageOperationStatus.OK);
         when(graphLockOperation.unlockComponent(any(), any())).thenReturn(StorageOperationStatus.OK);
@@ -603,6 +604,7 @@ class PolicyBusinessLogicTest {
 
     private void stubValidationSuccess() {
         when(userValidations.validateUserExists(USER_ID)).thenReturn(user);
+        Mockito.lenient().when(userValidations.isSameUser(eq(USER_ID),eq(USER_ID))).thenReturn(true);
         when(toscaOperationFacade.getToscaElement(eq(COMPONENT_ID), any(ComponentParametersView.class))).thenReturn(componentSuccessEither);
     }
 
index c19cf46..6a7bed9 100644 (file)
@@ -160,4 +160,19 @@ public class UserValidationsTest {
                });
                Mockito.verify(userAdmin, Mockito.times(1)).getUser(Mockito.anyString());
        }
+       
+    @Test
+    public void testValidateUserisSame() {
+        String userId = "cs0008";
+        String encryptedSameUser = "eaGi1IQqP9kbgBHuG/pZm9frcXMQUvoQ59rKkiz6+ug=";
+        
+        User user = new User();
+        user.setUserId(userId);
+        user.setStatus(UserStatusEnum.ACTIVE);
+        
+        Mockito.when(userAdmin.getUser(userId)).thenReturn(user);
+        Mockito.when(userAdmin.getUser(encryptedSameUser)).thenReturn(user);
+        
+        assertTrue(testSubject.isSameUser(userId, encryptedSameUser));
+    }
 }