Repository: incubator-ranger Updated Branches: refs/heads/master aceff0e8e -> 3a57aa3c3
RANGER-203: fix to update policyVersion in service on policy-create; fix for NPE in legacy repository retrieval API Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/3a57aa3c Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/3a57aa3c Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/3a57aa3c Branch: refs/heads/master Commit: 3a57aa3c324b5d3580209cdf96cd19451ee5efd5 Parents: aceff0e Author: Madhan Neethiraj <[email protected]> Authored: Wed Feb 25 00:49:30 2015 -0800 Committer: Madhan Neethiraj <[email protected]> Committed: Wed Feb 25 00:49:30 2015 -0800 ---------------------------------------------------------------------- .../org/apache/ranger/biz/ServiceDBStore.java | 1 + .../org/apache/ranger/common/ServiceUtil.java | 39 ++++++++++++++------ .../java/org/apache/ranger/rest/AssetREST.java | 8 +++- 3 files changed, 34 insertions(+), 14 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3a57aa3c/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java b/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java index 40925c0..292a9b9 100644 --- a/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java +++ b/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java @@ -600,6 +600,7 @@ public class ServiceDBStore implements ServiceStore { createNewResourcesForPolicy(policy, xCreatedPolicy, resources); createNewPolicyItemsForPolicy(policy, xCreatedPolicy, policyItems, xServiceDef); + handlePolicyUpdate(service); RangerPolicy createdPolicy = policyService.getPopulatedViewObject(xCreatedPolicy); dataHistService.createObjectDataHistory(createdPolicy, RangerDataHistService.ACTION_CREATE); http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3a57aa3c/security-admin/src/main/java/org/apache/ranger/common/ServiceUtil.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/common/ServiceUtil.java b/security-admin/src/main/java/org/apache/ranger/common/ServiceUtil.java index bfe0a43..d26f4c5 100644 --- a/security-admin/src/main/java/org/apache/ranger/common/ServiceUtil.java +++ b/security-admin/src/main/java/org/apache/ranger/common/ServiceUtil.java @@ -27,6 +27,8 @@ import java.util.Map; import java.util.Map.Entry; import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang.StringUtils; +import org.apache.log4j.Logger; import org.apache.ranger.db.RangerDaoManager; import org.apache.ranger.entity.XXGroup; import org.apache.ranger.entity.XXUser; @@ -45,7 +47,8 @@ import org.springframework.stereotype.Component; @Component public class ServiceUtil { - + static final Logger LOG = Logger.getLogger(ServiceUtil.class); + static Map<String, Integer> mapServiceTypeToAssetType = new HashMap<String, Integer>(); static Map<String, Integer> mapAccessTypeToPermType = new HashMap<String, Integer>(); @@ -119,15 +122,21 @@ public class ServiceUtil { return null; } - VXAsset ret = new VXAsset(); + VXAsset ret = null; - rangerObjectToDataObject(service, ret); - - ret.setAssetType(toAssetType(service.getType())); - ret.setName(service.getName()); - ret.setDescription(service.getDescription()); - ret.setActiveStatus(service.getIsEnabled() ? RangerCommonEnums.STATUS_ENABLED : RangerCommonEnums.STATUS_DISABLED); - ret.setConfig(jsonUtil.readMapToString(service.getConfigs())); + Integer assetType = toAssetType(service.getType()); + + if(assetType != null) { + ret = new VXAsset(); + + rangerObjectToDataObject(service, ret); + + ret.setAssetType(toAssetType(service.getType())); + ret.setName(service.getName()); + ret.setDescription(service.getDescription()); + ret.setActiveStatus(service.getIsEnabled() ? RangerCommonEnums.STATUS_ENABLED : RangerCommonEnums.STATUS_DISABLED); + ret.setConfig(jsonUtil.readMapToString(service.getConfigs())); + } return ret; } @@ -188,6 +197,8 @@ public class ServiceUtil { List<RangerPolicyItemAccess> accessList = new ArrayList<RangerPolicyItemAccess>(); String ipAddress = null; + RangerPolicy.RangerPolicyItem policyItem = new RangerPolicy.RangerPolicyItem(); + for(VXPermMap permMap : entry.getValue()) { if(permMap.getPermFor() == AppConstants.XA_PERM_FOR_USER) { String userName = getUserName(permMap); @@ -203,13 +214,17 @@ public class ServiceUtil { } } - accessList.add(new RangerPolicyItemAccess(toAccessType(permMap.getPermType()))); + String accessType = toAccessType(permMap.getPermType()); + + if(StringUtils.equalsIgnoreCase(accessType, "Admin")) { + policyItem.setDelegateAdmin(Boolean.TRUE); + } else { + accessList.add(new RangerPolicyItemAccess(accessType)); + } ipAddress = permMap.getIpAddress(); } - RangerPolicy.RangerPolicyItem policyItem = new RangerPolicy.RangerPolicyItem(); - policyItem.setUsers(userList); policyItem.setGroups(groupList); policyItem.setAccesses(accessList); http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3a57aa3c/security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java b/security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java index 4fd4cc8..753a3bf 100644 --- a/security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java +++ b/security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java @@ -239,10 +239,14 @@ public class AssetREST { List<RangerService> services = serviceREST.getServices(request); if(services != null) { - List<VXAsset> assets = new ArrayList<VXAsset>(services.size()); + List<VXAsset> assets = new ArrayList<VXAsset>(); for(RangerService service : services) { - assets.add(serviceUtil.toVXAsset(service)); + VXAsset asset = serviceUtil.toVXAsset(service); + + if(asset != null) { + assets.add(asset); + } } ret.setVXAssets(assets);
