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 @@
 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.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 @@
 		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 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 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 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 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 @@
 				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 @@
 
 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 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 @@
 		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 @@
 	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 @@
 	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 @@
 	/** 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 @@
 	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 @@
             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 @@
 			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 @@
 
 	@PostConstruct
 	public void initStore() {
-		config = new RangerAdminConfig();
+		config = RangerAdminConfig.getInstance();
 
 		RangerAdminTagEnricher.setTagStore(this);
 		RangerAdminTagEnricher.setDaoManager(daoManager);
@@ -1272,7 +1272,7 @@
 
 	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 @@
         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 @@
 	}
 
 	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 @@
 	}
 
 	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 @@
 	}
 
 	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 @@
     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 @@
 	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 RangerServiceDefService() {
 		super();
 
-		this.config = new RangerAdminConfig();
+		this.config = RangerAdminConfig.getInstance();
 	}
 
 	@Override
