Repository: incubator-ranger
Updated Branches:
  refs/heads/master 87446272e -> b1bfbc572


RANGER-339: Fix for potential NPE, remove dead code


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

Branch: refs/heads/master
Commit: b1bfbc572cd2a2974403abb7c023b5390c21f55d
Parents: 8744627
Author: Abhay Kulkarni <[email protected]>
Authored: Thu Mar 26 16:52:54 2015 -0700
Committer: Madhan Neethiraj <[email protected]>
Committed: Thu Mar 26 16:52:54 2015 -0700

----------------------------------------------------------------------
 .../java/org/apache/ranger/biz/AssetMgr.java    | 131 +++++++++----------
 .../java/org/apache/ranger/biz/UserMgr.java     |   7 +-
 .../org/apache/ranger/patch/BaseLoader.java     |   2 +-
 .../ranger/service/XAccessAuditService.java     |  25 ++--
 .../apache/ranger/service/XAssetService.java    |  56 ++++----
 .../apache/ranger/service/XAuditMapService.java |   2 +-
 .../apache/ranger/service/XGroupService.java    |   2 +-
 .../apache/ranger/service/XPermMapService.java  |   2 +-
 .../apache/ranger/service/XResourceService.java |   8 +-
 .../apache/ranger/service/XTrxLogService.java   |  34 ++---
 .../org/apache/ranger/service/XUserService.java |   6 +-
 .../process/PolicyMgrUserGroupBuilder.java      |  30 +++--
 .../config/UserGroupSyncConfig.java             |   6 +-
 .../poc/RangerClientUserGroupMapping.java       |  42 +++---
 .../unix/jaas/ConsolePromptCallbackHandler.java |  14 +-
 15 files changed, 190 insertions(+), 177 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/b1bfbc57/security-admin/src/main/java/org/apache/ranger/biz/AssetMgr.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/biz/AssetMgr.java 
b/security-admin/src/main/java/org/apache/ranger/biz/AssetMgr.java
index 9d11256..4750081 100644
--- a/security-admin/src/main/java/org/apache/ranger/biz/AssetMgr.java
+++ b/security-admin/src/main/java/org/apache/ranger/biz/AssetMgr.java
@@ -68,22 +68,7 @@ import org.apache.ranger.service.XTrxLogService;
 import org.apache.ranger.service.XUserService;
 import org.apache.ranger.solr.SolrAccessAuditsService;
 import org.apache.ranger.util.RestUtil;
-import org.apache.ranger.view.VXAccessAuditList;
-import org.apache.ranger.view.VXAsset;
-import org.apache.ranger.view.VXAuditMap;
-import org.apache.ranger.view.VXAuditMapList;
-import org.apache.ranger.view.VXLong;
-import org.apache.ranger.view.VXPermMap;
-import org.apache.ranger.view.VXPermMapList;
-import org.apache.ranger.view.VXPolicy;
-import org.apache.ranger.view.VXPolicyExportAuditList;
-import org.apache.ranger.view.VXResource;
-import org.apache.ranger.view.VXResourceList;
-import org.apache.ranger.view.VXResponse;
-import org.apache.ranger.view.VXStringList;
-import org.apache.ranger.view.VXTrxLog;
-import org.apache.ranger.view.VXTrxLogList;
-import org.apache.ranger.view.VXUser;
+import org.apache.ranger.view.*;
 import org.codehaus.jackson.JsonGenerationException;
 import org.codehaus.jackson.map.JsonMappingException;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -1756,39 +1741,42 @@ public class AssetMgr extends AssetMgrBase {
 
        public VXAccessAuditList getAccessLogs(SearchCriteria searchCriteria) {
 
-               if (searchCriteria != null && searchCriteria.getParamList() != 
null
-                               && searchCriteria.getParamList().size() > 0) {
-                       int clientTimeOffsetInMinute = 
RestUtil.getClientTimeOffset();
-                       java.util.Date temp = null;
-                       DateUtil dateUtil = new DateUtil();
-                       if 
(searchCriteria.getParamList().containsKey("startDate")) {
-                               temp = (java.util.Date) 
searchCriteria.getParamList().get(
-                                               "startDate");
-                               temp = dateUtil.getDateFromGivenDate(temp, 0, 
0, 0, 0);
-                               temp = dateUtil.addTimeOffset(temp, 
clientTimeOffsetInMinute);
-                               searchCriteria.getParamList().put("startDate", 
temp);
-                       }
-                       if 
(searchCriteria.getParamList().containsKey("endDate")) {
-                               temp = (java.util.Date) 
searchCriteria.getParamList().get(
-                                               "endDate");
-                               temp = dateUtil.getDateFromGivenDate(temp, 0, 
23, 59, 59);
-                               temp = dateUtil.addTimeOffset(temp, 
clientTimeOffsetInMinute);
-                               searchCriteria.getParamList().put("endDate", 
temp);
-                       }
+        if (searchCriteria == null) {
+            searchCriteria = new SearchCriteria();
+        }
+        if (searchCriteria.getParamList() != null
+                && searchCriteria.getParamList().size() > 0) {
+            int clientTimeOffsetInMinute = RestUtil.getClientTimeOffset();
+            java.util.Date temp = null;
+            DateUtil dateUtil = new DateUtil();
+            if (searchCriteria.getParamList().containsKey("startDate")) {
+                temp = (java.util.Date) searchCriteria.getParamList().get(
+                        "startDate");
+                temp = dateUtil.getDateFromGivenDate(temp, 0, 0, 0, 0);
+                temp = dateUtil.addTimeOffset(temp, clientTimeOffsetInMinute);
+                searchCriteria.getParamList().put("startDate", temp);
+            }
+            if (searchCriteria.getParamList().containsKey("endDate")) {
+                temp = (java.util.Date) searchCriteria.getParamList().get(
+                        "endDate");
+                temp = dateUtil.getDateFromGivenDate(temp, 0, 23, 59, 59);
+                temp = dateUtil.addTimeOffset(temp, clientTimeOffsetInMinute);
+                searchCriteria.getParamList().put("endDate", temp);
+            }
+
+        }
+        if (searchCriteria.getSortType() == null) {
+            searchCriteria.setSortType("desc");
+        } else if (!searchCriteria.getSortType().equalsIgnoreCase("asc") && 
!searchCriteria.getSortType().equalsIgnoreCase("desc")) {
+            searchCriteria.setSortType("desc");
+        }
+        if 
(xaBizUtil.getAuditDBType().equalsIgnoreCase(RangerBizUtil.AUDIT_STORE_SOLR)) {
+            return solrAccessAuditsService.searchXAccessAudits(searchCriteria);
+        } else {
+            return xAccessAuditService.searchXAccessAudits(searchCriteria);
+        }
+    }
 
-               }
-               if(searchCriteria.getSortType()==null){
-                       searchCriteria.setSortType("desc");
-               }else 
if(!searchCriteria.getSortType().equalsIgnoreCase("asc")&& 
!searchCriteria.getSortType().equalsIgnoreCase("desc")){
-                       searchCriteria.setSortType("desc");
-               }
-               if 
(xaBizUtil.getAuditDBType().equalsIgnoreCase(RangerBizUtil.AUDIT_STORE_SOLR)) {
-                       return 
solrAccessAuditsService.searchXAccessAudits(searchCriteria);
-               } else {
-                       return 
xAccessAuditService.searchXAccessAudits(searchCriteria);
-               }
-               //return 
xAccessAuditService.searchXAccessAudits(searchCriteria);
-       }
 
        public VXTrxLogList getTransactionReport(String transactionId) {
                List<XXTrxLog> xTrxLogList = rangerDaoManager.getXXTrxLog()
@@ -1854,30 +1842,29 @@ public class AssetMgr extends AssetMgrBase {
        @Override
        public VXPolicyExportAuditList searchXPolicyExportAudits(
                        SearchCriteria searchCriteria) {
-               if (searchCriteria != null && searchCriteria.getParamList() != 
null
-                               && searchCriteria.getParamList().size() > 0) {
-
-                       int clientTimeOffsetInMinute = 
RestUtil.getClientTimeOffset();
-                       java.util.Date temp = null;
-                       DateUtil dateUtil = new DateUtil();
-                       if 
(searchCriteria.getParamList().containsKey("startDate")) {
-                               temp = (java.util.Date) 
searchCriteria.getParamList().get(
-                                               "startDate");
-                               temp = dateUtil.getDateFromGivenDate(temp, 0, 
0, 0, 0);
-                               temp = dateUtil.addTimeOffset(temp, 
clientTimeOffsetInMinute);
-                               searchCriteria.getParamList().put("startDate", 
temp);
-                       }
-                       if 
(searchCriteria.getParamList().containsKey("endDate")) {
-                               temp = (java.util.Date) 
searchCriteria.getParamList().get(
-                                               "endDate");
-                               temp = dateUtil.getDateFromGivenDate(temp, 0, 
23, 59, 59);
-                               temp = dateUtil.addTimeOffset(temp, 
clientTimeOffsetInMinute);
-                               searchCriteria.getParamList().put("endDate", 
temp);
-                       }
-               }
-       
-               return 
xPolicyExportAuditService.searchXPolicyExportAudits(searchCriteria);
-       }
+        if (searchCriteria != null && searchCriteria.getParamList() != null
+                && searchCriteria.getParamList().size() > 0) {
+
+            int clientTimeOffsetInMinute = RestUtil.getClientTimeOffset();
+            java.util.Date temp = null;
+            DateUtil dateUtil = new DateUtil();
+            if (searchCriteria.getParamList().containsKey("startDate")) {
+                temp = (java.util.Date) searchCriteria.getParamList().get(
+                        "startDate");
+                temp = dateUtil.getDateFromGivenDate(temp, 0, 0, 0, 0);
+                temp = dateUtil.addTimeOffset(temp, clientTimeOffsetInMinute);
+                searchCriteria.getParamList().put("startDate", temp);
+            }
+            if (searchCriteria.getParamList().containsKey("endDate")) {
+                temp = (java.util.Date) searchCriteria.getParamList().get(
+                        "endDate");
+                temp = dateUtil.getDateFromGivenDate(temp, 0, 23, 59, 59);
+                temp = dateUtil.addTimeOffset(temp, clientTimeOffsetInMinute);
+                searchCriteria.getParamList().put("endDate", temp);
+            }
+        }
+        return 
xPolicyExportAuditService.searchXPolicyExportAudits(searchCriteria);
+    }
        
        public VXAsset getXAsset(Long id){
                UserSessionBase currentUserSession = ContextUtil

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/b1bfbc57/security-admin/src/main/java/org/apache/ranger/biz/UserMgr.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/biz/UserMgr.java 
b/security-admin/src/main/java/org/apache/ranger/biz/UserMgr.java
index 78c6c00..420b37d 100644
--- a/security-admin/src/main/java/org/apache/ranger/biz/UserMgr.java
+++ b/security-admin/src/main/java/org/apache/ranger/biz/UserMgr.java
@@ -1081,8 +1081,11 @@ public class UserMgr {
                                                                
MessageEnums.OPER_NOT_ALLOWED_FOR_STATE);*/
                        }
                }
-
-               return 
mapXXPortalUserToVXPortalUserForDefaultAccount(xXPortalUser);
+        if (xXPortalUser != null) {
+            return 
mapXXPortalUserToVXPortalUserForDefaultAccount(xXPortalUser);
+        }else {
+            return null;
+        }
        }
 
        private VXPortalUser 
mapXXPortalUserToVXPortalUserForDefaultAccount(XXPortalUser user) {

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/b1bfbc57/security-admin/src/main/java/org/apache/ranger/patch/BaseLoader.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/patch/BaseLoader.java 
b/security-admin/src/main/java/org/apache/ranger/patch/BaseLoader.java
index 61b46af..014dedc 100644
--- a/security-admin/src/main/java/org/apache/ranger/patch/BaseLoader.java
+++ b/security-admin/src/main/java/org/apache/ranger/patch/BaseLoader.java
@@ -146,7 +146,7 @@ public abstract class BaseLoader {
        long currTime =  DateUtil.getUTCDate().getTime();
        String retStr = formatTimeTaken(currTime - startTime);
        if (currTime - startTime > 0 && countSoFar > 0) {
-           double rateSoFar = countSoFar * 1000 / (currTime - startTime);
+           double rateSoFar = (double)(countSoFar * 1000) / (currTime - 
startTime);
            retStr = retStr + " " + ". Rate so far for " + countSoFar + " is "
                    + twoDForm.format(rateSoFar);
 

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/b1bfbc57/security-admin/src/main/java/org/apache/ranger/service/XAccessAuditService.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/service/XAccessAuditService.java
 
b/security-admin/src/main/java/org/apache/ranger/service/XAccessAuditService.java
index ef9bc46..a8999a9 100644
--- 
a/security-admin/src/main/java/org/apache/ranger/service/XAccessAuditService.java
+++ 
b/security-admin/src/main/java/org/apache/ranger/service/XAccessAuditService.java
@@ -147,21 +147,22 @@ public class XAccessAuditService extends 
XAccessAuditServiceBase<XXAccessAudit,
         * @return
         */
        public VXAccessAuditList searchXAccessAudits(SearchCriteria 
searchCriteria) {
-               VXAccessAuditList returnList = new VXAccessAuditList();
-               List<VXAccessAudit> xAccessAuditList = new 
ArrayList<VXAccessAudit>();
+        VXAccessAuditList returnList = new VXAccessAuditList();
+        List<VXAccessAudit> xAccessAuditList = new ArrayList<VXAccessAudit>();
 
-               List<XXAccessAudit> resultList = 
(List<XXAccessAudit>)searchResources(searchCriteria,
-                               searchFields, sortFields, returnList);
+        List<XXAccessAudit> resultList = (List<XXAccessAudit>) 
searchResources(searchCriteria,
+                searchFields, sortFields, returnList);
 
-               // Iterate over the result list and create the return list
-               for (XXAccessAudit gjXAccessAudit : resultList) {
-                       VXAccessAudit vXAccessAudit = 
populateViewBean(gjXAccessAudit);
-                       xAccessAuditList.add(vXAccessAudit);
-               }
+        // Iterate over the result list and create the return list
+        for (XXAccessAudit gjXAccessAudit : resultList) {
+            VXAccessAudit vXAccessAudit = populateViewBean(gjXAccessAudit);
+            xAccessAuditList.add(vXAccessAudit);
+        }
 
-               returnList.setVXAccessAudits(xAccessAuditList);
-               return returnList;
-       }
+
+        returnList.setVXAccessAudits(xAccessAuditList);
+        return returnList;
+    }
        
        public VXAccessAudit populateViewBean(XXAccessAudit gjXAccessAudit) {
                VXAccessAudit vXAccessAudit = new VXAccessAudit();

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/b1bfbc57/security-admin/src/main/java/org/apache/ranger/service/XAssetService.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/service/XAssetService.java 
b/security-admin/src/main/java/org/apache/ranger/service/XAssetService.java
index 6c99705..1d6f42c 100644
--- a/security-admin/src/main/java/org/apache/ranger/service/XAssetService.java
+++ b/security-admin/src/main/java/org/apache/ranger/service/XAssetService.java
@@ -117,33 +117,35 @@ public class XAssetService extends 
XAssetServiceBase<XXAsset, VXAsset> {
        @Override
        protected XXAsset mapViewToEntityBean(VXAsset vObj, XXAsset mObj,
                        int OPERATION_CONTEXT) {
-               String oldConfig = (mObj != null) ? mObj.getConfig() : null;
-               super.mapViewToEntityBean(vObj, mObj, OPERATION_CONTEXT);
-               String config = vObj.getConfig();
-               if (config != null && !config.isEmpty()) {
-                       Map<String, String> configMap = 
jsonUtil.jsonToMap(config);
-                       Entry<String, String> passwordEntry = 
getPasswordEntry(configMap);
-                       if (passwordEntry != null) {
-                               // If "*****" then get password from db and 
update
-                               String password = passwordEntry.getValue();
-                               if (password != null) {
-                                       if 
(password.equals(hiddenPasswordString)) {
-                                               if (oldConfig != null && 
!oldConfig.isEmpty()) {
-                                                       Map<String, String> 
oldConfigMap = jsonUtil
-                                                                       
.jsonToMap(oldConfig);
-                                                       Entry<String, String> 
oldPasswordEntry 
-                                                                       = 
getPasswordEntry(oldConfigMap);
-                                                       if (oldPasswordEntry != 
null) {
-                                                               
configMap.put(oldPasswordEntry.getKey(),
-                                                                               
oldPasswordEntry.getValue());
-                                                       }
-                                               }
-                                       }
-                                       config = 
jsonUtil.readMapToString(configMap);
-                               }
-                       }
-               }
-               mObj.setConfig(config);
+        if (vObj != null && mObj != null) {
+            String oldConfig = (mObj != null) ? mObj.getConfig() : null;
+            super.mapViewToEntityBean(vObj, mObj, OPERATION_CONTEXT);
+            String config = vObj.getConfig();
+            if (config != null && !config.isEmpty()) {
+                Map<String, String> configMap = jsonUtil.jsonToMap(config);
+                Entry<String, String> passwordEntry = 
getPasswordEntry(configMap);
+                if (passwordEntry != null) {
+                    // If "*****" then get password from db and update
+                    String password = passwordEntry.getValue();
+                    if (password != null) {
+                        if (password.equals(hiddenPasswordString)) {
+                            if (oldConfig != null && !oldConfig.isEmpty()) {
+                                Map<String, String> oldConfigMap = jsonUtil
+                                        .jsonToMap(oldConfig);
+                                Entry<String, String> oldPasswordEntry
+                                        = getPasswordEntry(oldConfigMap);
+                                if (oldPasswordEntry != null) {
+                                    configMap.put(oldPasswordEntry.getKey(),
+                                            oldPasswordEntry.getValue());
+                                }
+                            }
+                        }
+                        config = jsonUtil.readMapToString(configMap);
+                    }
+                }
+            }
+            mObj.setConfig(config);
+        }
                return mObj;
        }
 

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/b1bfbc57/security-admin/src/main/java/org/apache/ranger/service/XAuditMapService.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/service/XAuditMapService.java 
b/security-admin/src/main/java/org/apache/ranger/service/XAuditMapService.java
index a669280..c00ca74 100644
--- 
a/security-admin/src/main/java/org/apache/ranger/service/XAuditMapService.java
+++ 
b/security-admin/src/main/java/org/apache/ranger/service/XAuditMapService.java
@@ -78,7 +78,7 @@ public class XAuditMapService extends
        }
 
        public List<XXTrxLog> getTransactionLog(VXAuditMap vObj, VXAuditMap 
mObj, String action){
-               if(vObj == null && (action == null || 
!action.equalsIgnoreCase("update"))){
+               if(vObj == null || action == null || 
(action.equalsIgnoreCase("update") && mObj == null)){
                        return null;
                }
                

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/b1bfbc57/security-admin/src/main/java/org/apache/ranger/service/XGroupService.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/service/XGroupService.java 
b/security-admin/src/main/java/org/apache/ranger/service/XGroupService.java
index 580c31c..d31e178 100644
--- a/security-admin/src/main/java/org/apache/ranger/service/XGroupService.java
+++ b/security-admin/src/main/java/org/apache/ranger/service/XGroupService.java
@@ -154,7 +154,7 @@ public class XGroupService extends 
XGroupServiceBase<XXGroup, VXGroup> {
        }
 
        public List<XXTrxLog> getTransactionLog(VXGroup vObj, XXGroup mObj, 
String action){
-               if(vObj == null && (action == null || 
!action.equalsIgnoreCase("update"))){
+               if(vObj == null || action == null || 
(action.equalsIgnoreCase("update") && mObj == null)){
                        return null;
                }
                

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/b1bfbc57/security-admin/src/main/java/org/apache/ranger/service/XPermMapService.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/service/XPermMapService.java 
b/security-admin/src/main/java/org/apache/ranger/service/XPermMapService.java
index 9b8247c..34109ae 100644
--- 
a/security-admin/src/main/java/org/apache/ranger/service/XPermMapService.java
+++ 
b/security-admin/src/main/java/org/apache/ranger/service/XPermMapService.java
@@ -150,7 +150,7 @@ public class XPermMapService extends 
XPermMapServiceBase<XXPermMap, VXPermMap> {
        }
        
        public List<XXTrxLog> getTransactionLog(VXPermMap vObj, VXPermMap mObj, 
String action){
-               if(vObj == null && (action == null || 
!action.equalsIgnoreCase("update"))){
+               if(vObj == null || action == null || 
(action.equalsIgnoreCase("update") && mObj == null)){
                        return null;
                }
                

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/b1bfbc57/security-admin/src/main/java/org/apache/ranger/service/XResourceService.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/service/XResourceService.java 
b/security-admin/src/main/java/org/apache/ranger/service/XResourceService.java
index a7e2f12..1faec21 100644
--- 
a/security-admin/src/main/java/org/apache/ranger/service/XResourceService.java
+++ 
b/security-admin/src/main/java/org/apache/ranger/service/XResourceService.java
@@ -424,9 +424,9 @@ public class XResourceService extends
 
        @Override
        protected XXResource mapViewToEntityBean(VXResource vObj, XXResource 
mObj, int OPERATION_CONTEXT) {
-               super.mapViewToEntityBean(vObj, mObj, OPERATION_CONTEXT);
-               mObj.setUdfs(vObj.getUdfs());
-               if(vObj!=null && mObj!=null){
+        if(vObj!=null && mObj!=null){
+                   super.mapViewToEntityBean(vObj, mObj, OPERATION_CONTEXT);
+                   mObj.setUdfs(vObj.getUdfs());
                        XXPortalUser xXPortalUser= null;
                        if(mObj.getAddedByUserId()==null || 
mObj.getAddedByUserId()==0){
                                if(!stringUtil.isEmpty(vObj.getOwner())){
@@ -951,7 +951,7 @@ public class XResourceService extends
        }
        
        public List<XXTrxLog> getTransactionLog(VXResource vObj, XXResource 
mObj, String action){
-               if(vObj == null && (action == null || 
!action.equalsIgnoreCase("update"))){
+               if(vObj == null || action == null || 
(action.equalsIgnoreCase("update") && mObj == null)) {
                        return null;
                }
 

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/b1bfbc57/security-admin/src/main/java/org/apache/ranger/service/XTrxLogService.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/service/XTrxLogService.java 
b/security-admin/src/main/java/org/apache/ranger/service/XTrxLogService.java
index 7edce5b..3c3ac64 100644
--- a/security-admin/src/main/java/org/apache/ranger/service/XTrxLogService.java
+++ b/security-admin/src/main/java/org/apache/ranger/service/XTrxLogService.java
@@ -438,22 +438,22 @@ public class XTrxLogService extends 
XTrxLogServiceBase<XXTrxLog, VXTrxLog> {
 
        @Override
        protected VXTrxLog mapEntityToViewBean(VXTrxLog vObj, XXTrxLog mObj) {
-               super.mapEntityToViewBean(vObj, mObj);
-               if(mObj!=null && vObj!=null){
-                       XXPortalUser xXPortalUser=null;
-                       if(stringUtil.isEmpty(vObj.getOwner())){
-                               xXPortalUser= 
rangerDaoManager.getXXPortalUser().getById(mObj.getAddedByUserId());      
-                               if(xXPortalUser!=null){
-                                       
vObj.setOwner(xXPortalUser.getLoginId());
-                               }
-                       }
-                       if(stringUtil.isEmpty(vObj.getUpdatedBy())){
-                               xXPortalUser= 
rangerDaoManager.getXXPortalUser().getById(mObj.getUpdatedByUserId());          
  
-                               if(xXPortalUser!=null){
-                                       
vObj.setUpdatedBy(xXPortalUser.getLoginId());
-                               }
-                       }
-               }
-               return vObj;
+        if(mObj!=null && vObj!=null){
+            super.mapEntityToViewBean(vObj, mObj);
+            XXPortalUser xXPortalUser=null;
+            if(stringUtil.isEmpty(vObj.getOwner())){
+                xXPortalUser= 
rangerDaoManager.getXXPortalUser().getById(mObj.getAddedByUserId());
+                if(xXPortalUser!=null){
+                    vObj.setOwner(xXPortalUser.getLoginId());
+                }
+            }
+            if(stringUtil.isEmpty(vObj.getUpdatedBy())){
+                xXPortalUser= 
rangerDaoManager.getXXPortalUser().getById(mObj.getUpdatedByUserId());
+                if(xXPortalUser!=null){
+                    vObj.setUpdatedBy(xXPortalUser.getLoginId());
+                }
+            }
+        }
+        return vObj;
        }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/b1bfbc57/security-admin/src/main/java/org/apache/ranger/service/XUserService.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/service/XUserService.java 
b/security-admin/src/main/java/org/apache/ranger/service/XUserService.java
index d847ca0..c70fbb8 100644
--- a/security-admin/src/main/java/org/apache/ranger/service/XUserService.java
+++ b/security-admin/src/main/java/org/apache/ranger/service/XUserService.java
@@ -261,8 +261,10 @@ public class XUserService extends XUserServiceBase<XXUser, 
VXUser> {
 
        public List<XXTrxLog> getTransactionLog(VXUser vObj, VXPortalUser mObj,
                        String action) {
-               if (vObj == null || action == null || 
(action.equalsIgnoreCase("update") && mObj == null))
-                       return null;
+
+               if (vObj == null || action == null || 
(action.equalsIgnoreCase("update") && mObj == null)) {
+                       return null;
+               }
 
                List<XXTrxLog> trxLogList = new ArrayList<XXTrxLog>();
                try {

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/b1bfbc57/ugsync/src/main/java/org/apache/ranger/ldapusersync/process/PolicyMgrUserGroupBuilder.java
----------------------------------------------------------------------
diff --git 
a/ugsync/src/main/java/org/apache/ranger/ldapusersync/process/PolicyMgrUserGroupBuilder.java
 
b/ugsync/src/main/java/org/apache/ranger/ldapusersync/process/PolicyMgrUserGroupBuilder.java
index 44932ad..7cd06cc 100644
--- 
a/ugsync/src/main/java/org/apache/ranger/ldapusersync/process/PolicyMgrUserGroupBuilder.java
+++ 
b/ugsync/src/main/java/org/apache/ranger/ldapusersync/process/PolicyMgrUserGroupBuilder.java
@@ -126,7 +126,7 @@ public class PolicyMgrUserGroupBuilder implements 
UserGroupSink {
        }
 
        
-       public void init() throws Throwable {
+       public synchronized void init() throws Throwable {
                recordsToPullPerCall = config.getMaxRecordsPerAPICall() ;
                policyMgrBaseUrl = config.getPolicyManagerBaseURL() ;
                isMockRun = config.isMockRunEnabled() ;
@@ -164,24 +164,28 @@ public class PolicyMgrUserGroupBuilder implements 
UserGroupSink {
        
        
        private void rebuildUserGroupMap() {
-               
-               for(XUserInfo user : xuserList) {
-                       addUserToList(user);
+
+        List<XUserInfo> newUsers = new ArrayList<XUserInfo>();
+        for(XUserInfo user : xuserList) {
+                       addUserToList(user, newUsers);
                }
-               
+        xuserList.addAll(newUsers);
+
+        List<XGroupInfo> newGroups = new ArrayList<XGroupInfo>();
                for(XGroupInfo group : xgroupList) {
-                       addGroupToList(group);
+                       addGroupToList(group, newGroups);
                }
-               
+        xgroupList.addAll(newGroups);
+
                for(XUserGroupInfo ug : xusergroupList) {
                        addUserGroupToList(ug);
                }
        }
        
        
-       private void addUserToList(XUserInfo aUserInfo) {
+       private void addUserToList(XUserInfo aUserInfo, List<XUserInfo> 
newUsers) {
                if (! xuserList.contains(aUserInfo)) {
-                       xuserList.add(aUserInfo) ;
+            newUsers.add(aUserInfo);
                }
                
                String userId = aUserInfo.getId() ;
@@ -198,10 +202,10 @@ public class PolicyMgrUserGroupBuilder implements 
UserGroupSink {
        }
        
 
-       private void addGroupToList(XGroupInfo aGroupInfo) {
+       private void addGroupToList(XGroupInfo aGroupInfo, List<XGroupInfo> 
newGroups) {
                
                if (! xgroupList.contains(aGroupInfo) ) {
-                       xgroupList.add(aGroupInfo) ;
+            newGroups.add(aGroupInfo);
                }
 
                if (aGroupInfo.getName() != null) {
@@ -437,7 +441,7 @@ public class PolicyMgrUserGroupBuilder implements 
UserGroupSink {
            ret = gson.fromJson(response, XUserInfo.class) ;
 
            if (ret != null) {
-               addUserToList(ret);
+               addUserToList(ret, xuserList);
            }
                
                return ret ;
@@ -467,7 +471,7 @@ public class PolicyMgrUserGroupBuilder implements 
UserGroupSink {
            ret = gson.fromJson(response, XGroupInfo.class) ;
            
            if (ret != null) {
-               addGroupToList(ret);
+               addGroupToList(ret, xgroupList);
            }
                
                return ret ;

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/b1bfbc57/ugsync/src/main/java/org/apache/ranger/unixusersync/config/UserGroupSyncConfig.java
----------------------------------------------------------------------
diff --git 
a/ugsync/src/main/java/org/apache/ranger/unixusersync/config/UserGroupSyncConfig.java
 
b/ugsync/src/main/java/org/apache/ranger/unixusersync/config/UserGroupSyncConfig.java
index 204a39c..6e98b34 100644
--- 
a/ugsync/src/main/java/org/apache/ranger/unixusersync/config/UserGroupSyncConfig.java
+++ 
b/ugsync/src/main/java/org/apache/ranger/unixusersync/config/UserGroupSyncConfig.java
@@ -280,7 +280,7 @@ public class UserGroupSyncConfig  {
        public long getSleepTimeInMillisBetweenCycle() throws Throwable {
                String val =  
prop.getProperty(UGSYNC_SLEEP_TIME_IN_MILLIS_BETWEEN_CYCLE_PARAM) ;
                if (val == null) {
-                       if (LGSYNC_SOURCE_CLASS.equals(getUserGroupSource())) {
+                       if 
(LGSYNC_SOURCE_CLASS.equals(getUserGroupSource().getClass().getName())) {
                                return 
UGSYNC_SLEEP_TIME_IN_MILLIS_BETWEEN_CYCLE_LDAP_DEFAULT_VALUE ;
                        } else {
                                return 
UGSYNC_SLEEP_TIME_IN_MILLIS_BETWEEN_CYCLE_UNIX_DEFAULT_VALUE ;
@@ -389,9 +389,9 @@ public class UserGroupSyncConfig  {
                }
                
                val = val.trim().toLowerCase();
-               if (val.equals(0) || val.startsWith("base")) {
+               if (val.equals("0") || val.startsWith("base")) {
                        return 0; // object scope
-               } else if (val.equals(1) || val.startsWith("one")) {
+               } else if (val.equals("1") || val.startsWith("one")) {
                        return 1; // one level scope
                } else {
                        return 2; // subtree scope

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/b1bfbc57/ugsync/src/main/java/org/apache/ranger/unixusersync/poc/RangerClientUserGroupMapping.java
----------------------------------------------------------------------
diff --git 
a/ugsync/src/main/java/org/apache/ranger/unixusersync/poc/RangerClientUserGroupMapping.java
 
b/ugsync/src/main/java/org/apache/ranger/unixusersync/poc/RangerClientUserGroupMapping.java
index 4ac922d..408e861 100644
--- 
a/ugsync/src/main/java/org/apache/ranger/unixusersync/poc/RangerClientUserGroupMapping.java
+++ 
b/ugsync/src/main/java/org/apache/ranger/unixusersync/poc/RangerClientUserGroupMapping.java
@@ -1,22 +1,22 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
  package org.apache.ranger.unixusersync.poc;
 
 import java.io.BufferedReader;
@@ -44,6 +44,10 @@ public class RangerClientUserGroupMapping {
            while ((strLine = br.readLine()) != null)  {
                
                ListRangerUser userList = ListRangerUser.parseUser(strLine);
+
+            if (userList == null) {
+                continue;
+            }
                 
                HashMap<String, String> map = new HashMap<String, String>();
          

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/b1bfbc57/unixauthclient/src/main/java/org/apache/ranger/authentication/unix/jaas/ConsolePromptCallbackHandler.java
----------------------------------------------------------------------
diff --git 
a/unixauthclient/src/main/java/org/apache/ranger/authentication/unix/jaas/ConsolePromptCallbackHandler.java
 
b/unixauthclient/src/main/java/org/apache/ranger/authentication/unix/jaas/ConsolePromptCallbackHandler.java
index 62a3d5a..f1400b2 100644
--- 
a/unixauthclient/src/main/java/org/apache/ranger/authentication/unix/jaas/ConsolePromptCallbackHandler.java
+++ 
b/unixauthclient/src/main/java/org/apache/ranger/authentication/unix/jaas/ConsolePromptCallbackHandler.java
@@ -42,13 +42,23 @@ public class ConsolePromptCallbackHandler implements 
CallbackHandler {
                          NameCallback nc = (NameCallback)cb ;
                          System.out.print(nc.getPrompt());
                          System.out.flush();
-                         nc.setName(reader.readLine());
+                  String line = null;
+
+                  while (line == null) {
+                    line = reader.readLine();
+                  }
+                         nc.setName(line);
                        }
                        else if (cb instanceof PasswordCallback) {
                          PasswordCallback pc = (PasswordCallback)cb;
                          System.out.print(pc.getPrompt());
                          System.out.flush();
-                         pc.setPassword(reader.readLine().toCharArray());      
                        
+
+                  String line = null;
+                  while (line == null) {
+                    line = reader.readLine();
+                  }
+                         pc.setPassword(line.toCharArray());
                        }
                        else {
                                System.out.println("Unknown callbacl [" + 
cb.getClass().getName() + "]") ;

Reply via email to