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

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


The following commit(s) were added to refs/heads/RANGER-3923 by this push:
     new dc338c184 RANGER-4265: updated ServicePolicies to include GDS policies 
- #2
dc338c184 is described below

commit dc338c1846ed384245ce184e6b24ac6b83ec3be6
Author: Madhan Neethiraj <[email protected]>
AuthorDate: Tue Jun 20 11:45:10 2023 -0700

    RANGER-4265: updated ServicePolicies to include GDS policies - #2
---
 .../ranger/plugin/service/RangerBasePlugin.java    | 88 ++++++++++++++++++++-
 .../apache/ranger/plugin/util/ServicePolicies.java | 92 ----------------------
 2 files changed, 87 insertions(+), 93 deletions(-)

diff --git 
a/agents-common/src/main/java/org/apache/ranger/plugin/service/RangerBasePlugin.java
 
b/agents-common/src/main/java/org/apache/ranger/plugin/service/RangerBasePlugin.java
index 9249b3295..644c00fac 100644
--- 
a/agents-common/src/main/java/org/apache/ranger/plugin/service/RangerBasePlugin.java
+++ 
b/agents-common/src/main/java/org/apache/ranger/plugin/service/RangerBasePlugin.java
@@ -341,7 +341,7 @@ public class RangerBasePlugin {
                                                // Rebuild policies from deltas
                                                RangerPolicyEngineImpl 
policyEngine = (RangerPolicyEngineImpl) oldPolicyEngine;
 
-                                               servicePolicies = 
ServicePolicies.applyDelta(policies, policyEngine);
+                                               servicePolicies = 
applyDelta(policies, policyEngine);
 
                                                if (servicePolicies != null) {
                                                        usePolicyDeltas = true;
@@ -1328,4 +1328,90 @@ public class RangerBasePlugin {
 
                return ret;
        }
+
+       public static ServicePolicies applyDelta(final ServicePolicies 
servicePolicies, RangerPolicyEngineImpl policyEngine) {
+               ServicePolicies ret = 
ServicePolicies.copyHeader(servicePolicies);
+
+               List<RangerPolicy> oldResourcePolicies = 
policyEngine.getResourcePolicies();
+               List<RangerPolicy> oldTagPolicies      = 
policyEngine.getTagPolicies();
+               List<RangerPolicy> oldGdsPolicies      = 
Collections.emptyList(); // TODO: policyEngine.getGdsPolicies();
+
+               List<RangerPolicy> newResourcePolicies = 
RangerPolicyDeltaUtil.applyDeltas(oldResourcePolicies, 
servicePolicies.getPolicyDeltas(), servicePolicies.getServiceDef().getName());
+
+               ret.setPolicies(newResourcePolicies);
+
+               final List<RangerPolicy> newTagPolicies;
+               if (servicePolicies.getTagPolicies() != null) {
+                       if (LOG.isDebugEnabled()) {
+                               LOG.debug("applyingDeltas for tag policies");
+                       }
+                       newTagPolicies = 
RangerPolicyDeltaUtil.applyDeltas(oldTagPolicies, 
servicePolicies.getPolicyDeltas(), 
servicePolicies.getTagPolicies().getServiceDef().getName());
+               } else {
+                       if (LOG.isDebugEnabled()) {
+                               LOG.debug("No need to apply deltas for tag 
policies");
+                       }
+                       newTagPolicies = oldTagPolicies;
+               }
+
+               if (LOG.isDebugEnabled()) {
+                       LOG.debug("New tag policies:[" + 
Arrays.toString(newTagPolicies.toArray()) + "]");
+               }
+
+               final List<RangerPolicy> newGdsPolicies;
+               if (servicePolicies.getGdsPolicies() != null) {
+                       LOG.debug("applyingDeltas for gds policies");
+
+                       newGdsPolicies = 
RangerPolicyDeltaUtil.applyDeltas(oldGdsPolicies, 
servicePolicies.getPolicyDeltas(), 
servicePolicies.getGdsPolicies().getServiceDef().getName());
+               } else {
+                       LOG.debug("No need to apply deltas for gds policies");
+
+                       newGdsPolicies = oldGdsPolicies;
+               }
+
+               if (LOG.isDebugEnabled()) {
+                       LOG.debug("New gds policies:[" + 
Arrays.toString(newGdsPolicies.toArray()) + "]");
+               }
+
+               if (ret.getTagPolicies() != null) {
+                       ret.getTagPolicies().setPolicies(newTagPolicies);
+               }
+
+               if (ret.getGdsPolicies() != null) {
+                       ret.getGdsPolicies().setPolicies(newGdsPolicies);
+               }
+
+               if (MapUtils.isNotEmpty(servicePolicies.getSecurityZones())) {
+                       Map<String, ServicePolicies.SecurityZoneInfo> 
newSecurityZones = new HashMap<>();
+
+                       for (Map.Entry<String, 
ServicePolicies.SecurityZoneInfo> entry : 
servicePolicies.getSecurityZones().entrySet()) {
+                               String                   zoneName = 
entry.getKey();
+                               ServicePolicies.SecurityZoneInfo zoneInfo = 
entry.getValue();
+
+                               List<RangerPolicy> zoneResourcePolicies = 
policyEngine.getResourcePolicies(zoneName);
+                               // There are no separate 
tag-policy-repositories for each zone
+
+                               if (LOG.isDebugEnabled()) {
+                                       LOG.debug("Applying deltas for 
security-zone:[" + zoneName + "]");
+                               }
+
+                               final List<RangerPolicy> newZonePolicies = 
RangerPolicyDeltaUtil.applyDeltas(zoneResourcePolicies, 
zoneInfo.getPolicyDeltas(), servicePolicies.getServiceDef().getName());
+
+                               if (LOG.isDebugEnabled()) {
+                                       LOG.debug("New resource policies for 
security-zone:[" + zoneName + "], zoneResourcePolicies:[" + 
Arrays.toString(newZonePolicies.toArray())+ "]");
+                               }
+
+                               ServicePolicies.SecurityZoneInfo newZoneInfo = 
new ServicePolicies.SecurityZoneInfo();
+
+                               newZoneInfo.setZoneName(zoneName);
+                               
newZoneInfo.setResources(zoneInfo.getResources());
+                               newZoneInfo.setPolicies(newZonePolicies);
+
+                               newSecurityZones.put(zoneName, newZoneInfo);
+                       }
+
+                       ret.setSecurityZones(newSecurityZones);
+               }
+
+               return ret;
+       }
 }
diff --git 
a/agents-common/src/main/java/org/apache/ranger/plugin/util/ServicePolicies.java
 
b/agents-common/src/main/java/org/apache/ranger/plugin/util/ServicePolicies.java
index 288672a20..f6a8c7efd 100644
--- 
a/agents-common/src/main/java/org/apache/ranger/plugin/util/ServicePolicies.java
+++ 
b/agents-common/src/main/java/org/apache/ranger/plugin/util/ServicePolicies.java
@@ -21,7 +21,6 @@ package org.apache.ranger.plugin.util;
 
 
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.Date;
 import java.util.HashMap;
@@ -32,19 +31,15 @@ import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlRootElement;
 
-import org.apache.commons.collections.MapUtils;
 import org.apache.ranger.authorization.utils.StringUtil;
 import org.apache.ranger.plugin.model.RangerPolicy;
 import org.apache.ranger.plugin.model.RangerPolicyDelta;
 import org.apache.ranger.plugin.model.RangerServiceDef;
 import org.apache.ranger.plugin.policyengine.RangerPolicyEngine;
-import org.apache.ranger.plugin.policyengine.RangerPolicyEngineImpl;
 import org.codehaus.jackson.annotate.JsonAutoDetect;
 import org.codehaus.jackson.annotate.JsonIgnoreProperties;
 import org.codehaus.jackson.annotate.JsonAutoDetect.Visibility;
 import org.codehaus.jackson.map.annotate.JsonSerialize;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 @JsonAutoDetect(fieldVisibility=Visibility.ANY)
 @JsonSerialize(include=JsonSerialize.Inclusion.NON_EMPTY)
@@ -53,7 +48,6 @@ import org.slf4j.LoggerFactory;
 @XmlAccessorType(XmlAccessType.FIELD)
 public class ServicePolicies implements java.io.Serializable {
        private static final long serialVersionUID = 1L;
-       private static final Logger LOG = 
LoggerFactory.getLogger(ServicePolicies.class);
 
        private String             serviceName;
        private Long               serviceId;
@@ -650,90 +644,4 @@ public class ServicePolicies implements 
java.io.Serializable {
 
                return ret;
        }
-
-       public static ServicePolicies applyDelta(final ServicePolicies 
servicePolicies, RangerPolicyEngineImpl policyEngine) {
-               ServicePolicies ret = copyHeader(servicePolicies);
-
-               List<RangerPolicy> oldResourcePolicies = 
policyEngine.getResourcePolicies();
-               List<RangerPolicy> oldTagPolicies      = 
policyEngine.getTagPolicies();
-               List<RangerPolicy> oldGdsPolicies      = 
policyEngine.getGdsPolicies();
-
-               List<RangerPolicy> newResourcePolicies = 
RangerPolicyDeltaUtil.applyDeltas(oldResourcePolicies, 
servicePolicies.getPolicyDeltas(), servicePolicies.getServiceDef().getName());
-
-               ret.setPolicies(newResourcePolicies);
-
-               final List<RangerPolicy> newTagPolicies;
-               if (servicePolicies.getTagPolicies() != null) {
-                       if (LOG.isDebugEnabled()) {
-                               LOG.debug("applyingDeltas for tag policies");
-                       }
-                       newTagPolicies = 
RangerPolicyDeltaUtil.applyDeltas(oldTagPolicies, 
servicePolicies.getPolicyDeltas(), 
servicePolicies.getTagPolicies().getServiceDef().getName());
-               } else {
-                       if (LOG.isDebugEnabled()) {
-                               LOG.debug("No need to apply deltas for tag 
policies");
-                       }
-                       newTagPolicies = oldTagPolicies;
-               }
-
-               if (LOG.isDebugEnabled()) {
-                       LOG.debug("New tag policies:[" + 
Arrays.toString(newTagPolicies.toArray()) + "]");
-               }
-
-               final List<RangerPolicy> newGdsPolicies;
-               if (servicePolicies.getGdsPolicies() != null) {
-                       LOG.debug("applyingDeltas for gds policies");
-
-                       newGdsPolicies = 
RangerPolicyDeltaUtil.applyDeltas(oldGdsPolicies, 
servicePolicies.getPolicyDeltas(), 
servicePolicies.getGdsPolicies().getServiceDef().getName());
-               } else {
-                       LOG.debug("No need to apply deltas for gds policies");
-
-                       newGdsPolicies = oldGdsPolicies;
-               }
-
-               if (LOG.isDebugEnabled()) {
-                       LOG.debug("New gds policies:[" + 
Arrays.toString(newGdsPolicies.toArray()) + "]");
-               }
-
-               if (ret.getTagPolicies() != null) {
-                       ret.getTagPolicies().setPolicies(newTagPolicies);
-               }
-
-               if (ret.getGdsPolicies() != null) {
-                       ret.getGdsPolicies().setPolicies(newGdsPolicies);
-               }
-
-               if (MapUtils.isNotEmpty(servicePolicies.getSecurityZones())) {
-                       Map<String, SecurityZoneInfo> newSecurityZones = new 
HashMap<>();
-
-                       for (Map.Entry<String, SecurityZoneInfo> entry : 
servicePolicies.getSecurityZones().entrySet()) {
-                               String                   zoneName = 
entry.getKey();
-                               SecurityZoneInfo zoneInfo = entry.getValue();
-
-                               List<RangerPolicy> zoneResourcePolicies = 
policyEngine.getResourcePolicies(zoneName);
-                               // There are no separate 
tag-policy-repositories for each zone
-
-                               if (LOG.isDebugEnabled()) {
-                                       LOG.debug("Applying deltas for 
security-zone:[" + zoneName + "]");
-                               }
-
-                               final List<RangerPolicy> newZonePolicies = 
RangerPolicyDeltaUtil.applyDeltas(zoneResourcePolicies, 
zoneInfo.getPolicyDeltas(), servicePolicies.getServiceDef().getName());
-
-                               if (LOG.isDebugEnabled()) {
-                                       LOG.debug("New resource policies for 
security-zone:[" + zoneName + "], zoneResourcePolicies:[" + 
Arrays.toString(newZonePolicies.toArray())+ "]");
-                               }
-
-                               SecurityZoneInfo newZoneInfo = new 
SecurityZoneInfo();
-
-                               newZoneInfo.setZoneName(zoneName);
-                               
newZoneInfo.setResources(zoneInfo.getResources());
-                               newZoneInfo.setPolicies(newZonePolicies);
-
-                               newSecurityZones.put(zoneName, newZoneInfo);
-                       }
-
-                       ret.setSecurityZones(newSecurityZones);
-               }
-
-               return ret;
-       }
 }

Reply via email to