You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ma...@apache.org on 2019/12/07 20:20:01 UTC

[ranger] branch master updated: RANGER-2654: updated RangerAdminTagRetriever to use pluginConfig from RangerBasePlugin; replaced multiple instances of RangerAdminConfig (#4)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new f028a21  RANGER-2654: updated RangerAdminTagRetriever to use pluginConfig from RangerBasePlugin; replaced multiple instances of RangerAdminConfig (#4)
f028a21 is described below

commit f028a213463d5ebd5b150c78fc43931fa8e49c92
Author: Madhan Neethiraj <ma...@apache.org>
AuthorDate: Fri Dec 6 02:01:48 2019 -0800

    RANGER-2654: updated RangerAdminTagRetriever to use pluginConfig from RangerBasePlugin; replaced multiple instances of RangerAdminConfig (#4)
    
    Change-Id: Ia7aff3318f60491940be3e6137474c897d029925
---
 .../hadoop/config/RangerAdminConfig.java           | 20 +++++++++++++++++++-
 .../RangerAbstractContextEnricher.java             | 22 ++++++++++++++++------
 .../contextenricher/RangerAdminTagRetriever.java   |  8 ++++++--
 .../plugin/contextenricher/RangerTagEnricher.java  |  1 +
 .../plugin/contextenricher/RangerTagRetriever.java | 10 +++++++---
 .../ranger/plugin/service/RangerBasePlugin.java    |  4 ++++
 .../ranger/plugin/service/RangerBaseService.java   |  2 +-
 .../ranger/plugin/store/AbstractServiceStore.java  |  2 +-
 .../plugin/store/EmbeddedServiceDefsUtil.java      |  2 +-
 .../java/org/apache/ranger/biz/RangerBizUtil.java  |  2 +-
 .../java/org/apache/ranger/biz/RoleDBStore.java    |  2 +-
 .../java/org/apache/ranger/biz/ServiceDBStore.java |  2 +-
 .../java/org/apache/ranger/biz/TagDBStore.java     |  4 ++--
 .../ranger/common/RangerAdminTagEnricher.java      |  2 +-
 .../org/apache/ranger/common/RangerRoleCache.java  |  2 +-
 .../ranger/common/RangerServicePoliciesCache.java  |  2 +-
 .../ranger/common/RangerServiceTagsCache.java      |  2 +-
 .../java/org/apache/ranger/patch/BaseLoader.java   |  2 +-
 .../java/org/apache/ranger/rest/ServiceREST.java   |  2 +-
 .../ranger/service/RangerServiceDefService.java    |  2 +-
 20 files changed, 68 insertions(+), 27 deletions(-)

diff --git a/agents-common/src/main/java/org/apache/ranger/authorization/hadoop/config/RangerAdminConfig.java b/agents-common/src/main/java/org/apache/ranger/authorization/hadoop/config/RangerAdminConfig.java
index 8783142..5cd539a 100644
--- a/agents-common/src/main/java/org/apache/ranger/authorization/hadoop/config/RangerAdminConfig.java
+++ b/agents-common/src/main/java/org/apache/ranger/authorization/hadoop/config/RangerAdminConfig.java
@@ -24,7 +24,25 @@ import org.apache.log4j.Logger;
 public class RangerAdminConfig extends RangerConfiguration {
     private static final Logger LOG = Logger.getLogger(RangerAdminConfig.class);
 
-    public RangerAdminConfig() {
+    private static volatile RangerAdminConfig sInstance = null;
+
+    public static RangerAdminConfig getInstance() {
+        RangerAdminConfig ret = RangerAdminConfig.sInstance;
+
+        if (ret == null) {
+            synchronized (RangerAdminConfig.class) {
+                ret = RangerAdminConfig.sInstance;
+
+                if (ret == null) {
+                    ret = RangerAdminConfig.sInstance = new RangerAdminConfig();
+                }
+            }
+        }
+
+        return ret;
+    }
+
+    private RangerAdminConfig() {
         super();
 
         addAdminResources();
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 99d97cc..fa84760 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
@@ -32,6 +32,7 @@ import org.apache.commons.lang.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.conf.Configuration;
+import org.apache.ranger.authorization.hadoop.config.RangerPluginConfig;
 import org.apache.ranger.plugin.model.RangerServiceDef;
 import org.apache.ranger.plugin.model.RangerServiceDef.RangerContextEnricherDef;
 import org.apache.ranger.plugin.policyengine.RangerAccessRequest;
@@ -175,6 +176,12 @@ public abstract class RangerAbstractContextEnricher implements RangerContextEnri
 		this.pluginContext = pluginContext;
 	}
 
+	public RangerPluginConfig getPluginConfig() {
+		RangerPluginContext pluginContext = this.pluginContext;
+
+		return pluginContext != null ? pluginContext.getConfig() : null;
+	}
+
 	public void notifyAuthContextChanged() {
 		RangerPluginContext pluginContext = this.pluginContext;
 
@@ -184,8 +191,9 @@ public abstract class RangerAbstractContextEnricher implements RangerContextEnri
 	}
 
 	public String getConfig(String configName, String defaultValue) {
-		String        ret    = defaultValue;
-		Configuration config = pluginContext != null ? pluginContext.getConfig() : null;
+		RangerPluginContext pluginContext = this.pluginContext;
+		String              ret           = defaultValue;
+		Configuration       config        = pluginContext != null ? pluginContext.getConfig() : null;
 
 		if (config != null) {
 			ret = config.get(configName, defaultValue);
@@ -195,8 +203,9 @@ public abstract class RangerAbstractContextEnricher implements RangerContextEnri
 	}
 
 	public int getIntConfig(String configName, int defaultValue) {
-		int           ret    = defaultValue;
-		Configuration config = pluginContext != null ? pluginContext.getConfig() : null;
+		RangerPluginContext pluginContext = this.pluginContext;
+		int                 ret           = defaultValue;
+		Configuration       config        = pluginContext != null ? pluginContext.getConfig() : null;
 
 		if (config != null) {
 			ret = config.getInt(configName, defaultValue);
@@ -206,8 +215,9 @@ public abstract class RangerAbstractContextEnricher implements RangerContextEnri
 	}
 
 	public boolean getBooleanConfig(String configName, boolean defaultValue) {
-		boolean       ret    = defaultValue;
-		Configuration config = pluginContext != null ? pluginContext.getConfig() : null;
+		RangerPluginContext pluginContext = this.pluginContext;
+		boolean             ret           = defaultValue;
+		Configuration       config        = pluginContext != null ? pluginContext.getConfig() : null;
 
 		if (config != null) {
 			ret = config.getBoolean(configName, defaultValue);
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerAdminTagRetriever.java b/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerAdminTagRetriever.java
index e4b19c3..7b49a99 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerAdminTagRetriever.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerAdminTagRetriever.java
@@ -39,9 +39,13 @@ public class RangerAdminTagRetriever extends RangerTagRetriever {
 	public void init(Map<String, String> options) {
 
 		if (StringUtils.isNotBlank(serviceName) && serviceDef != null && StringUtils.isNotBlank(appId)) {
-			RangerPluginConfig config = new RangerPluginConfig(serviceDef.getName(), serviceName, appId, null, null, null);
+			RangerPluginConfig pluginConfig = super.pluginConfig;
 
-			adminClient = RangerBasePlugin.createAdminClient(config);
+			if (pluginConfig == null) {
+				pluginConfig = new RangerPluginConfig(serviceDef.getName(), serviceName, appId, null, null, null);
+			}
+
+			adminClient = RangerBasePlugin.createAdminClient(pluginConfig);
 		} else {
 			LOG.error("FATAL: Cannot find service/serviceDef to use for retrieving tags. Will NOT be able to retrieve tags.");
 		}
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 7e03690..5d6a403 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
@@ -129,6 +129,7 @@ public class RangerTagEnricher extends RangerAbstractContextEnricher {
 				tagRetriever.setServiceName(serviceName);
 				tagRetriever.setServiceDef(serviceDef);
 				tagRetriever.setAppId(appId);
+				tagRetriever.setPluginConfig(getPluginConfig());
 				tagRetriever.init(enricherDef.getEnricherOptions());
 
 				tagRefresher = new RangerTagRefresher(tagRetriever, this, -1L, tagDownloadQueue, cacheFile);
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerTagRetriever.java b/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerTagRetriever.java
index 91fdcc3..0f09b64 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerTagRetriever.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerTagRetriever.java
@@ -19,6 +19,7 @@
 
 package org.apache.ranger.plugin.contextenricher;
 
+import org.apache.ranger.authorization.hadoop.config.RangerPluginConfig;
 import org.apache.ranger.plugin.model.RangerServiceDef;
 import org.apache.ranger.plugin.util.ServiceTags;
 
@@ -26,9 +27,10 @@ import java.util.Map;
 
 public abstract class RangerTagRetriever {
 
-	protected String serviceName;
-	protected RangerServiceDef serviceDef;
-	protected String appId;
+	protected String             serviceName;
+	protected RangerServiceDef   serviceDef;
+	protected String             appId;
+	protected RangerPluginConfig pluginConfig;
 
 	public abstract void init(Map<String, String> options);
 
@@ -57,4 +59,6 @@ public abstract class RangerTagRetriever {
 	public void setAppId(String appId) {
 		this.appId = appId;
 	}
+
+	public void setPluginConfig(RangerPluginConfig pluginConfig) { this.pluginConfig = pluginConfig; }
 }
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 f5cdddf..6f1d9f9 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
@@ -73,6 +73,10 @@ public class RangerBasePlugin {
 		this(new RangerPluginConfig(serviceType, null, appId, null, null, null));
 	}
 
+	public RangerBasePlugin(String serviceType, String serviceName, String appId) {
+		this(new RangerPluginConfig(serviceType, serviceName, appId, null, null, null));
+	}
+
 	public RangerBasePlugin(RangerPluginConfig pluginConfig) {
 		this.pluginConfig  = pluginConfig;
 		this.pluginContext = new RangerPluginContext(pluginConfig);
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/service/RangerBaseService.java b/agents-common/src/main/java/org/apache/ranger/plugin/service/RangerBaseService.java
index 01a7c9f..23f5a22 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/service/RangerBaseService.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/service/RangerBaseService.java
@@ -69,7 +69,7 @@ public abstract class RangerBaseService {
 	private final RangerAdminConfig config;
 
 	public RangerBaseService() {
-		this.config = new RangerAdminConfig();
+		this.config = RangerAdminConfig.getInstance();
 	}
 
 	public void init(RangerServiceDef serviceDef, RangerService service) {
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractServiceStore.java b/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractServiceStore.java
index 3b54960..e9d199b 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractServiceStore.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractServiceStore.java
@@ -55,7 +55,7 @@ public abstract class AbstractServiceStore implements ServiceStore {
 	protected abstract void updateServicesForServiceDefUpdate(RangerServiceDef serviceDef) throws Exception;
 
 	protected AbstractServiceStore() {
-		this.config = new RangerAdminConfig();
+		this.config = RangerAdminConfig.getInstance();
 	}
 
 	@Override
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/store/EmbeddedServiceDefsUtil.java b/agents-common/src/main/java/org/apache/ranger/plugin/store/EmbeddedServiceDefsUtil.java
index 543d13f..e96f881 100755
--- a/agents-common/src/main/java/org/apache/ranger/plugin/store/EmbeddedServiceDefsUtil.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/store/EmbeddedServiceDefsUtil.java
@@ -119,7 +119,7 @@ public class EmbeddedServiceDefsUtil {
 	/** Private constructor to restrict instantiation of this singleton utility class. */
 	private EmbeddedServiceDefsUtil() {
 		gsonBuilder = new GsonBuilder().setDateFormat("yyyyMMdd-HH:mm:ss.SSS-Z").setPrettyPrinting().create();
-		config      = new RangerAdminConfig();
+		config      = RangerAdminConfig.getInstance();
 	}
 
 	public static EmbeddedServiceDefsUtil instance() {
diff --git a/security-admin/src/main/java/org/apache/ranger/biz/RangerBizUtil.java b/security-admin/src/main/java/org/apache/ranger/biz/RangerBizUtil.java
index 3761ef2..206f6af 100644
--- a/security-admin/src/main/java/org/apache/ranger/biz/RangerBizUtil.java
+++ b/security-admin/src/main/java/org/apache/ranger/biz/RangerBizUtil.java
@@ -113,7 +113,7 @@ public class RangerBizUtil {
 	static String fileSeparator = PropertiesUtil.getProperty("ranger.file.separator", "/");
 
 	public RangerBizUtil() {
-		RangerAdminConfig config = new RangerAdminConfig();
+		RangerAdminConfig config = RangerAdminConfig.getInstance();
 
 		allowUnauthenticatedAccessInSecureEnvironment = config.getBoolean("ranger.admin.allow.unauthenticated.access", false);
 
diff --git a/security-admin/src/main/java/org/apache/ranger/biz/RoleDBStore.java b/security-admin/src/main/java/org/apache/ranger/biz/RoleDBStore.java
index ec4615d..04596dc 100644
--- a/security-admin/src/main/java/org/apache/ranger/biz/RoleDBStore.java
+++ b/security-admin/src/main/java/org/apache/ranger/biz/RoleDBStore.java
@@ -83,7 +83,7 @@ public class RoleDBStore implements RoleStore {
             LOG.debug("==> RoleDBStore.initStore()");
         }
 
-        config = new RangerAdminConfig();
+        config = RangerAdminConfig.getInstance();
 
         roleService.setPopulateExistingBaseFields(populateExistingBaseFields);
         predicateUtil = new RolePredicateUtil();
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 80e3f97..0fd5093 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
@@ -361,7 +361,7 @@ public class ServiceDBStore extends AbstractServiceStore {
 			LOG.debug("==> ServiceDBStore.initStore()");
 		}
 
-		config = new RangerAdminConfig();
+		config = RangerAdminConfig.getInstance();
 
 		if(! legacyServiceDefsInitDone) {
 			synchronized(ServiceDBStore.class) {
diff --git a/security-admin/src/main/java/org/apache/ranger/biz/TagDBStore.java b/security-admin/src/main/java/org/apache/ranger/biz/TagDBStore.java
index 2d7f407..581f11a 100644
--- a/security-admin/src/main/java/org/apache/ranger/biz/TagDBStore.java
+++ b/security-admin/src/main/java/org/apache/ranger/biz/TagDBStore.java
@@ -104,7 +104,7 @@ public class TagDBStore extends AbstractTagStore {
 
 	@PostConstruct
 	public void initStore() {
-		config = new RangerAdminConfig();
+		config = RangerAdminConfig.getInstance();
 
 		RangerAdminTagEnricher.setTagStore(this);
 		RangerAdminTagEnricher.setDaoManager(daoManager);
@@ -1272,7 +1272,7 @@ public class TagDBStore extends AbstractTagStore {
 
 	public static boolean isSupportsTagDeltas() {
         if (!IS_SUPPORTS_TAG_DELTAS_INITIALIZED) {
-            RangerAdminConfig config = new RangerAdminConfig();
+            RangerAdminConfig config = RangerAdminConfig.getInstance();
 
             SUPPORTS_TAG_DELTAS = config.getBoolean("ranger.admin.supports.tag.deltas", false);
             IS_SUPPORTS_TAG_DELTAS_INITIALIZED = true;
diff --git a/security-admin/src/main/java/org/apache/ranger/common/RangerAdminTagEnricher.java b/security-admin/src/main/java/org/apache/ranger/common/RangerAdminTagEnricher.java
index c4b134e..09e5c50 100644
--- a/security-admin/src/main/java/org/apache/ranger/common/RangerAdminTagEnricher.java
+++ b/security-admin/src/main/java/org/apache/ranger/common/RangerAdminTagEnricher.java
@@ -59,7 +59,7 @@ public class RangerAdminTagEnricher extends RangerTagEnricher {
         super.init();
 
         if (!ADMIN_TAG_ENRICHER_SUPPORTS_TAG_DELTAS_INITIALIZED) {
-            RangerAdminConfig config = new RangerAdminConfig();
+            RangerAdminConfig config = RangerAdminConfig.getInstance();
 
             ADMIN_TAG_ENRICHER_SUPPORTS_TAG_DELTAS = config.getBoolean("ranger.admin.tag.enricher.supports.tag.deltas", true);
 
diff --git a/security-admin/src/main/java/org/apache/ranger/common/RangerRoleCache.java b/security-admin/src/main/java/org/apache/ranger/common/RangerRoleCache.java
index 0b94c19..f86a8ba 100644
--- a/security-admin/src/main/java/org/apache/ranger/common/RangerRoleCache.java
+++ b/security-admin/src/main/java/org/apache/ranger/common/RangerRoleCache.java
@@ -58,7 +58,7 @@ public class RangerRoleCache {
 	}
 
 	private RangerRoleCache() {
-		RangerAdminConfig config = new RangerAdminConfig();
+		RangerAdminConfig config = RangerAdminConfig.getInstance();
 
 		waitTimeInSeconds = config.getInt("ranger.admin.policy.download.cache.max.waittime.for.update", MAX_WAIT_TIME_FOR_UPDATE);
 	}
diff --git a/security-admin/src/main/java/org/apache/ranger/common/RangerServicePoliciesCache.java b/security-admin/src/main/java/org/apache/ranger/common/RangerServicePoliciesCache.java
index 536cb06..23c40b5 100644
--- a/security-admin/src/main/java/org/apache/ranger/common/RangerServicePoliciesCache.java
+++ b/security-admin/src/main/java/org/apache/ranger/common/RangerServicePoliciesCache.java
@@ -61,7 +61,7 @@ public class RangerServicePoliciesCache {
 	}
 
 	private RangerServicePoliciesCache() {
-		RangerAdminConfig config = new RangerAdminConfig();
+		RangerAdminConfig config = RangerAdminConfig.getInstance();
 
 		waitTimeInSeconds = config.getInt("ranger.admin.policy.download.cache.max.waittime.for.update", MAX_WAIT_TIME_FOR_UPDATE);
 	}
diff --git a/security-admin/src/main/java/org/apache/ranger/common/RangerServiceTagsCache.java b/security-admin/src/main/java/org/apache/ranger/common/RangerServiceTagsCache.java
index 249a3bf..9431c3a 100644
--- a/security-admin/src/main/java/org/apache/ranger/common/RangerServiceTagsCache.java
+++ b/security-admin/src/main/java/org/apache/ranger/common/RangerServiceTagsCache.java
@@ -59,7 +59,7 @@ public class RangerServiceTagsCache {
 	}
 
 	private RangerServiceTagsCache() {
-		RangerAdminConfig config = new RangerAdminConfig();
+		RangerAdminConfig config = RangerAdminConfig.getInstance();
 
 		useServiceTagsCache = config.getBoolean("ranger.admin.tag.download.usecache", true);
 		waitTimeInSeconds   = config.getInt("ranger.admin.tag.download.cache.max.waittime.for.update", MAX_WAIT_TIME_FOR_UPDATE);
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 6cae5cb..0eb8c26 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
@@ -49,7 +49,7 @@ public abstract class BaseLoader {
     protected final RangerAdminConfig config;
 
     public BaseLoader() {
-    	this.config = new RangerAdminConfig();
+        this.config = RangerAdminConfig.getInstance();
     }
 
     public void init(int batchSize) throws Exception {
diff --git a/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java b/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java
index 5a57ee0..f2bbd3c 100644
--- a/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java
+++ b/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java
@@ -244,7 +244,7 @@ public class ServiceREST {
 	private RangerPolicyEngineOptions delegateAdminOptions;
 	private RangerPolicyEngineOptions policySearchAdminOptions;
 	private RangerPolicyEngineOptions defaultAdminOptions;
-	private final RangerAdminConfig   config = new RangerAdminConfig();
+	private final RangerAdminConfig   config = RangerAdminConfig.getInstance();
 
 	public ServiceREST() {
 	}
diff --git a/security-admin/src/main/java/org/apache/ranger/service/RangerServiceDefService.java b/security-admin/src/main/java/org/apache/ranger/service/RangerServiceDefService.java
index 1ec2f49..954c10e 100644
--- a/security-admin/src/main/java/org/apache/ranger/service/RangerServiceDefService.java
+++ b/security-admin/src/main/java/org/apache/ranger/service/RangerServiceDefService.java
@@ -38,7 +38,7 @@ public class RangerServiceDefService extends RangerServiceDefServiceBase<XXServi
 	public RangerServiceDefService() {
 		super();
 
-		this.config = new RangerAdminConfig();
+		this.config = RangerAdminConfig.getInstance();
 	}
 
 	@Override