This is an automated email from the ASF dual-hosted git repository.

madhan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git


The following commit(s) were added to refs/heads/master by this push:
     new 08c4cf376 RANGER-4055: updated to require user's firstName to be 
non-empty
08c4cf376 is described below

commit 08c4cf37639109e44b12b969ae13d36dcd29ff85
Author: Ramachandran Krishnan <[email protected]>
AuthorDate: Fri Feb 3 17:06:28 2023 +0530

    RANGER-4055: updated to require user's firstName to be non-empty
    
    Signed-off-by: Madhan Neethiraj <[email protected]>
---
 .../main/java/org/apache/ranger/biz/XUserMgr.java  | 22 ++++++++
 .../java/org/apache/ranger/biz/TestXUserMgr.java   | 59 ++++++++++++++++++----
 2 files changed, 72 insertions(+), 9 deletions(-)

diff --git a/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java 
b/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java
index 0a03da567..bbbf90c52 100755
--- a/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java
+++ b/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java
@@ -193,6 +193,7 @@ public class XUserMgr extends XUserMgrBase {
                xaBizUtil.blockAuditorRoleUser();
                validatePassword(vXUser);
                String userName = vXUser.getName();
+               String firstName = vXUser.getFirstName();
                if (userName == null || "null".equalsIgnoreCase(userName)
                                || userName.trim().isEmpty()) {
                        throw restErrorUtil.createRESTException(
@@ -200,6 +201,13 @@ public class XUserMgr extends XUserMgrBase {
                                        MessageEnums.INVALID_INPUT_DATA);
                }
 
+               if (firstName == null || "null".equalsIgnoreCase(firstName)
+                       || firstName.trim().isEmpty()) {
+                       throw restErrorUtil.createRESTException(
+                               "Please provide a valid first name.",
+                               MessageEnums.INVALID_INPUT_DATA);
+               }
+
                if (vXUser.getDescription() == null) {
                        vXUser.setDescription(vXUser.getName());
                }
@@ -386,6 +394,12 @@ public class XUserMgr extends XUserMgrBase {
                        throw restErrorUtil.createRESTException("Please provide 
a valid "
                                        + "username.", 
MessageEnums.INVALID_INPUT_DATA);
                }
+               String firstName = vXUser.getFirstName();
+               if (firstName == null || "null".equalsIgnoreCase(firstName)
+                               || firstName.trim().isEmpty()) {
+                       throw restErrorUtil.createRESTException("Please provide 
a valid first name.", MessageEnums.INVALID_INPUT_DATA);
+               }
+
                checkAccess(vXUser.getName());
                xaBizUtil.blockAuditorRoleUser();
                VXPortalUser oldUserProfile = 
userMgr.getUserProfileByLoginId(vXUser
@@ -2626,6 +2640,14 @@ public class XUserMgr extends XUserMgrBase {
                                logger.warn("Ignoring invalid username " + 
vXUser==null? null : vXUser.getName());
                                continue;
                        }
+
+                       String firstName = vXUser.getFirstName();
+                       if (firstName == null || 
"null".equalsIgnoreCase(firstName)
+                                       || firstName.trim().isEmpty()) {
+                               logger.warn("Ignoring invalid first name " + 
vXUser == null ? null : vXUser.getFirstName());
+                               continue;
+                       }
+
                        checkAccess(vXUser.getName());
                        TransactionTemplate txTemplate = new 
TransactionTemplate(txManager);
                        
txTemplate.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
diff --git 
a/security-admin/src/test/java/org/apache/ranger/biz/TestXUserMgr.java 
b/security-admin/src/test/java/org/apache/ranger/biz/TestXUserMgr.java
index 871857bbf..528f4e511 100644
--- a/security-admin/src/test/java/org/apache/ranger/biz/TestXUserMgr.java
+++ b/security-admin/src/test/java/org/apache/ranger/biz/TestXUserMgr.java
@@ -663,8 +663,7 @@ public class TestXUserMgr {
                vxUser.setName(null);
                Mockito.when(restErrorUtil.createRESTException("Please provide 
a valid username.",MessageEnums.INVALID_INPUT_DATA)).thenThrow(new 
WebApplicationException());
                thrown.expect(WebApplicationException.class);
-               VXUser vXUser=xUserMgr.createXUser(vxUser);
-               Assert.assertNull(vXUser);
+               xUserMgr.createXUser(vxUser);
        }
 
        @Test
@@ -681,8 +680,33 @@ public class TestXUserMgr {
                xUserMgr.createXUser(vxUser);
        }
 
+       @Test
+       public void testCreateXUser_WithBlankFirstName() {
+               destroySession();
+               setup();
+               VXUser vxUser = vxUser();
+               vxUser.setName("test");
+               vxUser.setFirstName(null);
+               Mockito.when(restErrorUtil.createRESTException("Please provide 
a valid first name.",MessageEnums.INVALID_INPUT_DATA)).thenThrow(new 
WebApplicationException());
+               thrown.expect(WebApplicationException.class);
+               xUserMgr.createXUser(vxUser);
+       }
+
        @Test
        public void test04CreateXUser_WithBlankValues() {
+               destroySession();
+               setup();
+               VXUser vxUser = vxUser();
+               vxUser.setDescription(null);
+               vxUser.setFirstName("test");
+               vxUser.setLastName("null");
+               Mockito.when(restErrorUtil.createRESTException("Please provide 
valid email address.",MessageEnums.INVALID_INPUT_DATA)).thenThrow(new 
WebApplicationException());
+               thrown.expect(WebApplicationException.class);
+               xUserMgr.createXUser(vxUser);
+       }
+
+       @Test
+       public void testUpdateXUser_WithBlankFirstName() {
                setup();
                VXUser vxUser = vxUser();
                ArrayList<String> userRoleListVXPortaUser = getRoleList();
@@ -690,10 +714,23 @@ public class TestXUserMgr {
                vXPortalUser.setUserRoleList(userRoleListVXPortaUser);
                vxUser.setDescription(null);
                vxUser.setFirstName("null");
-               vxUser.setLastName("null");
-               Mockito.when(restErrorUtil.createRESTException("Please provide 
valid email address.",MessageEnums.INVALID_INPUT_DATA)).thenThrow(new 
WebApplicationException());
+               Mockito.when(restErrorUtil.createRESTException("Please provide 
a valid first name.",MessageEnums.INVALID_INPUT_DATA)).thenThrow(new 
WebApplicationException());
                thrown.expect(WebApplicationException.class);
-               xUserMgr.createXUser(vxUser);
+               xUserMgr.updateXUser(vxUser);
+       }
+
+       @Test
+       public void testUpdateXUser_WithBlankUserName() {
+               setup();
+               VXUser vxUser = vxUser();
+               ArrayList<String> userRoleListVXPortaUser = getRoleList();
+               VXPortalUser vXPortalUser = new VXPortalUser();
+               vXPortalUser.setUserRoleList(userRoleListVXPortaUser);
+               vxUser.setDescription(null);
+               vxUser.setName("null");
+               Mockito.when(restErrorUtil.createRESTException("Please provide 
a valid username.",MessageEnums.INVALID_INPUT_DATA)).thenThrow(new 
WebApplicationException());
+               thrown.expect(WebApplicationException.class);
+               xUserMgr.updateXUser(vxUser);
        }
 
        @Test
@@ -2582,7 +2619,7 @@ public class TestXUserMgr {
                vxUser.setUserRoleList(reqRoleList);
                vxUser.setUserSource(RangerCommonEnums.USER_EXTERNAL);
                vxUser.setGroupIdList(groupIdList);
-               vxUser.setFirstName("null");
+               vxUser.setFirstName("user1");
                vxUser.setLastName("null");
                vxUser.setPassword("*****");
                
Mockito.when(xUserService.updateResource(vxUser)).thenReturn(vxUser);
@@ -3759,6 +3796,9 @@ public class TestXUserMgr {
                List<VXUser> vXUserList=new ArrayList<VXUser>();
                VXUser vXUser = vxUser();
                VXUser vXUser1 = vxUser();
+               VXUser vXUser2 = vxUser();
+               vXUser2.setFirstName("user12");
+               vXUser2.setEmailAddress(null);
                vXUser.setFirstName("null");
                vXUser.setLastName("null");
                vXUser.setEmailAddress("");
@@ -3771,8 +3811,10 @@ public class TestXUserMgr {
                userRoleList.add(RangerConstants.ROLE_ADMIN_AUDITOR);
                vXUser.setUserRoleList(userRoleList);
                vXUser1.setUserRoleList(userRoleList);
+               vXUser2.setUserRoleList(userRoleList);
                vXUserList.add(vXUser);
                vXUserList.add(vXUser1);
+               vXUserList.add(vXUser2);
                VXUserList users = new VXUserList(vXUserList);
                XXUserDao xxUserDao = Mockito.mock(XXUserDao.class);
                XXPortalUserDao userDao = Mockito.mock(XXPortalUserDao.class);
@@ -3823,12 +3865,11 @@ public class TestXUserMgr {
 
                
Mockito.when(xUserPermissionService.createResource((VXUserPermission) 
Mockito.any())).thenReturn(userPermission);
                
Mockito.when(sessionMgr.getActiveUserSessionsForPortalUserId(userId)).thenReturn(userSessions);
-               xUserMgr.createOrUpdateXUsers(users);
-
                
Mockito.when(xUserPermissionDao.findByModuleIdAndPortalUserId(null, 
null)).thenReturn(xUserPermissionObj);
                
Mockito.when(xUserPermissionService.populateViewBean(xUserPermissionObj)).thenReturn(userPermission);
                
Mockito.when(xUserPermissionService.updateResource((VXUserPermission) 
Mockito.any())).thenReturn(userPermission);
-               xUserMgr.createOrUpdateXUsers(users);
+               int createdOrUpdatedUserCount = 
xUserMgr.createOrUpdateXUsers(users);
+               Assert.assertEquals(createdOrUpdatedUserCount, 1);
        }
 
        @Test

Reply via email to