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>();