You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ga...@apache.org on 2017/07/10 08:57:55 UTC

ranger git commit: RANGER-1638 : Improve the password validation from Ranger API

Repository: ranger
Updated Branches:
  refs/heads/ranger-0.7 8675a2495 -> 98da92207


RANGER-1638 : Improve the password validation from Ranger API


Project: http://git-wip-us.apache.org/repos/asf/ranger/repo
Commit: http://git-wip-us.apache.org/repos/asf/ranger/commit/98da9220
Tree: http://git-wip-us.apache.org/repos/asf/ranger/tree/98da9220
Diff: http://git-wip-us.apache.org/repos/asf/ranger/diff/98da9220

Branch: refs/heads/ranger-0.7
Commit: 98da92207ba78a640d4ddce8f02cb2de8657040f
Parents: 8675a24
Author: Gautam Borad <ga...@apache.org>
Authored: Fri Jun 23 13:50:18 2017 +0530
Committer: Gautam Borad <ga...@apache.org>
Committed: Mon Jul 10 14:23:37 2017 +0530

----------------------------------------------------------------------
 .../java/org/apache/ranger/biz/XUserMgr.java    | 27 +++++++++++++++++---
 .../org/apache/ranger/biz/TestXUserMgr.java     |  3 ++-
 2 files changed, 26 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ranger/blob/98da9220/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java
----------------------------------------------------------------------
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 cd1de9f..b973b9a 100644
--- a/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java
+++ b/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java
@@ -180,6 +180,7 @@ public class XUserMgr extends XUserMgrBase {
 
 	public VXUser createXUser(VXUser vXUser) {
 		checkAdminAccess();
+                validatePassword(vXUser);
 		String userName = vXUser.getName();
 		if (userName == null || "null".equalsIgnoreCase(userName)
 				|| userName.trim().isEmpty()) {
@@ -382,8 +383,10 @@ public class XUserMgr extends XUserMgrBase {
 				&& password.equals(hiddenPasswordString)) {
 			vXPortalUser.setPassword(oldUserProfile.getPassword());
 		}
-		vXPortalUser.setPassword(password);
-
+                else if(password != null){
+                        validatePassword(vXUser);
+                        vXPortalUser.setPassword(password);
+                }
 		Collection<Long> groupIdList = vXUser.getGroupIdList();
 		XXPortalUser xXPortalUser = new XXPortalUser();
 		xXPortalUser = userMgr.updateUserWithPass(vXPortalUser);
@@ -514,6 +517,9 @@ public class XUserMgr extends XUserMgrBase {
 	public VXUserGroupInfo createXUserGroupFromMap(
 			VXUserGroupInfo vXUserGroupInfo) {
 		checkAdminAccess();
+                if(vXUserGroupInfo.getXuserInfo() != null) {
+                        validatePassword(vXUserGroupInfo.getXuserInfo());
+                }
 		VXUserGroupInfo vxUGInfo = new VXUserGroupInfo();
 
 		VXUser vXUser = vXUserGroupInfo.getXuserInfo();
@@ -614,6 +620,7 @@ public class XUserMgr extends XUserMgrBase {
 
 	public VXUser createXUserWithOutLogin(VXUser vXUser) {
 		checkAdminAccess();
+                validatePassword(vXUser);
 		return xUserService.createXUserWithOutLogin(vXUser);
 	}
 
@@ -2145,5 +2152,19 @@ public class XUserMgr extends XUserMgrBase {
 			}
 		}
 		return createdXUser;
-}
+        }
+        private void validatePassword(VXUser vXUser) {
+                if (vXUser.getPassword() != null && !vXUser.getPassword().isEmpty()) {
+                        boolean checkPassword = false;
+                        String pattern = "(?=.*[0-9])(?=.*[a-zA-Z]).{8,}";
+                        checkPassword = vXUser.getPassword().trim().matches(pattern);
+                        if (!checkPassword) {
+                                logger.warn("validatePassword(). Password should be minimum 8 characters with min one alphabet and one numeric.");
+                                throw restErrorUtil.createRESTException("serverMsg.xuserMgrValidatePassword", MessageEnums.INVALID_PASSWORD, null, "Password should be minimum 8 characters with min one alphabet and one numeric", null);
+                        }
+                } else {
+                        logger.warn("validatePassword(). Password cannot be blank/null.");
+                        throw restErrorUtil.createRESTException("serverMsg.xuserMgrValidatePassword", MessageEnums.INVALID_PASSWORD, null, "Password cannot be blank/null", null);
+                }
+        }
 }

http://git-wip-us.apache.org/repos/asf/ranger/blob/98da9220/security-admin/src/test/java/org/apache/ranger/biz/TestXUserMgr.java
----------------------------------------------------------------------
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 3323f11..2542f91 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
@@ -188,6 +188,7 @@ public class TestXUserMgr {
 		vxUser.setName("grouptest");
 		vxUser.setUserRoleList(userRoleList);
 		vxUser.setGroupNameList(groupNameList);
+                vxUser.setPassword("usertest123");
 		return vxUser;
 	}
 
@@ -835,7 +836,7 @@ public class TestXUserMgr {
 		VXUser vXUser = new VXUser();
 		vXUser.setName("user1");
 		vXUser.setDescription("testuser1 -added for unit testing");
-
+                vXUser.setPassword("usertest123");
 		List<VXGroupUser> vXGroupUserList = new ArrayList<VXGroupUser>();
 		List<VXGroup> vXGroupList = new ArrayList<VXGroup>();