You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ab...@apache.org on 2020/11/25 17:55:38 UTC

[ranger] branch ranger-2.2 updated: RANGER-3088: Build tagged-resource-cache using memory optimization flags identical to policy-cache

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

abhay pushed a commit to branch ranger-2.2
in repository https://gitbox.apache.org/repos/asf/ranger.git


The following commit(s) were added to refs/heads/ranger-2.2 by this push:
     new b7e26a6  RANGER-3088: Build tagged-resource-cache using memory optimization flags identical to policy-cache
b7e26a6 is described below

commit b7e26a6633746e54343c0714341c3d159502967a
Author: Abhay Kulkarni <ab...@apache.org>
AuthorDate: Wed Nov 25 09:19:54 2020 -0800

    RANGER-3088: Build tagged-resource-cache using memory optimization flags identical to policy-cache
---
 .../plugin/contextenricher/RangerAbstractContextEnricher.java  | 10 ++++++++++
 .../ranger/plugin/contextenricher/RangerTagEnricher.java       |  2 +-
 .../ranger/plugin/policyengine/RangerPolicyRepository.java     |  5 +++--
 3 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerAbstractContextEnricher.java b/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerAbstractContextEnricher.java
index fa84760..f838f84 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerAbstractContextEnricher.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerAbstractContextEnricher.java
@@ -37,6 +37,7 @@ import org.apache.ranger.plugin.model.RangerServiceDef;
 import org.apache.ranger.plugin.model.RangerServiceDef.RangerContextEnricherDef;
 import org.apache.ranger.plugin.policyengine.RangerAccessRequest;
 import org.apache.ranger.plugin.policyengine.RangerPluginContext;
+import org.apache.ranger.plugin.policyengine.RangerPolicyEngineOptions;
 import org.apache.ranger.plugin.service.RangerAuthContext;
 
 
@@ -48,6 +49,7 @@ public abstract class RangerAbstractContextEnricher implements RangerContextEnri
 	protected String                   appId;
 	protected RangerServiceDef         serviceDef;
 	private   RangerPluginContext      pluginContext;
+	protected RangerPolicyEngineOptions options = new RangerPolicyEngineOptions();
 
 	@Override
 	public void setEnricherDef(RangerContextEnricherDef enricherDef) {
@@ -176,12 +178,20 @@ public abstract class RangerAbstractContextEnricher implements RangerContextEnri
 		this.pluginContext = pluginContext;
 	}
 
+	final public void setPolicyEngineOptions(RangerPolicyEngineOptions options) {
+		this.options = options;
+	}
+
 	public RangerPluginConfig getPluginConfig() {
 		RangerPluginContext pluginContext = this.pluginContext;
 
 		return pluginContext != null ? pluginContext.getConfig() : null;
 	}
 
+	public RangerPolicyEngineOptions getPolicyEngineOptions() {
+		return options;
+	}
+
 	public void notifyAuthContextChanged() {
 		RangerPluginContext pluginContext = this.pluginContext;
 
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerTagEnricher.java b/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerTagEnricher.java
index 94ac749..fc73194 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerTagEnricher.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerTagEnricher.java
@@ -392,7 +392,7 @@ public class RangerTagEnricher extends RangerAbstractContextEnricher {
 					serviceResourceTrie = new HashMap<>();
 
 					for (RangerServiceDef.RangerResourceDef resourceDef : serviceDef.getResources()) {
-						serviceResourceTrie.put(resourceDef.getName(), new RangerResourceTrie<>(resourceDef, resourceMatchers));
+						serviceResourceTrie.put(resourceDef.getName(), new RangerResourceTrie(resourceDef, resourceMatchers, getPolicyEngineOptions().optimizeTrieForRetrieval, null));
 					}
 				}
 				enrichedServiceTags = new EnrichedServiceTags(serviceTags, resourceMatchers, serviceResourceTrie);
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerPolicyRepository.java b/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerPolicyRepository.java
index 3886eea..169ed0f 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerPolicyRepository.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerPolicyRepository.java
@@ -1008,7 +1008,7 @@ public class RangerPolicyRepository {
                         contextEnricherDef = new RangerServiceDef.RangerContextEnricherDef(enricherDef.getItemId(), enricherDef.getName(), "org.apache.ranger.common.RangerAdminTagEnricher", null);
                     }
 
-                    RangerContextEnricher contextEnricher = buildContextEnricher(contextEnricherDef);
+                    RangerContextEnricher contextEnricher = buildContextEnricher(contextEnricherDef, options);
 
                     if (contextEnricher != null) {
                         contextEnrichers.add(contextEnricher);
@@ -1019,7 +1019,7 @@ public class RangerPolicyRepository {
         return contextEnrichers;
     }
 
-    private RangerContextEnricher buildContextEnricher(RangerServiceDef.RangerContextEnricherDef enricherDef) {
+    private RangerContextEnricher buildContextEnricher(RangerServiceDef.RangerContextEnricherDef enricherDef, RangerPolicyEngineOptions  options) {
         if(LOG.isDebugEnabled()) {
             LOG.debug("==> RangerPolicyRepository.buildContextEnricher(" + enricherDef + ")");
         }
@@ -1059,6 +1059,7 @@ public class RangerPolicyRepository {
                 if (ret instanceof RangerAbstractContextEnricher) {
                     RangerAbstractContextEnricher abstractContextEnricher = (RangerAbstractContextEnricher) ret;
                     abstractContextEnricher.setPluginContext(pluginContext);
+                    abstractContextEnricher.setPolicyEngineOptions(options);
                 }
                 ret.init();
             }