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 2015/03/24 01:58:25 UTC

incubator-ranger git commit: RANGER-328: fix for NPE in Ranger policy engine

Repository: incubator-ranger
Updated Branches:
  refs/heads/master 66e5cfd96 -> 878e2ac3f


RANGER-328: fix for NPE in Ranger policy engine


Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/878e2ac3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/878e2ac3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/878e2ac3

Branch: refs/heads/master
Commit: 878e2ac3f656502bd9aba150579de28b657845a1
Parents: 66e5cfd
Author: Madhan Neethiraj <ma...@apache.org>
Authored: Mon Mar 23 17:35:40 2015 -0700
Committer: Madhan Neethiraj <ma...@apache.org>
Committed: Mon Mar 23 17:35:40 2015 -0700

----------------------------------------------------------------------
 .../policyengine/RangerPolicyEngineImpl.java    | 23 ++++++++++++++++++--
 1 file changed, 21 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/878e2ac3/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerPolicyEngineImpl.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerPolicyEngineImpl.java b/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerPolicyEngineImpl.java
index 7227e9e..5e9ca0c 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerPolicyEngineImpl.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerPolicyEngineImpl.java
@@ -56,11 +56,14 @@ public class RangerPolicyEngineImpl implements RangerPolicyEngine {
 
 	@Override
 	public RangerServiceDef getServiceDef() {
+		RangerPolicyRepository policyRepository = getPolicyRepository();
+
 		return policyRepository == null ? null : policyRepository.getServiceDef();
 	}
 
 	@Override
 	public List<RangerContextEnricher> getContextEnrichers() {
+		RangerPolicyRepository policyRepository = getPolicyRepository();
 
 		return policyRepository == null ? null : policyRepository.getContextEnrichers();
 	}
@@ -72,9 +75,11 @@ public class RangerPolicyEngineImpl implements RangerPolicyEngine {
 		}
 
 		if (serviceName != null && serviceDef != null && policies != null) {
-			policyRepository = new RangerPolicyRepository(serviceName);
+			RangerPolicyRepository policyRepository = new RangerPolicyRepository(serviceName);
 			policyRepository.init(serviceDef, policies);
+
 			this.serviceName = serviceName;
+			setPolicyRepository(policyRepository);
 		} else {
 			LOG.error("RangerPolicyEngineImpl.setPolicies ->Invalid arguments: serviceName, serviceDef, or policies is null");
 		}
@@ -96,7 +101,9 @@ public class RangerPolicyEngineImpl implements RangerPolicyEngine {
 
 	@Override
 	public RangerAccessResult createAccessResult(RangerAccessRequest request) {
-		return policyRepository == null ? null : new RangerAccessResult(serviceName, policyRepository.getServiceDef(), request);
+		RangerPolicyRepository policyRepository = getPolicyRepository();
+
+		return new RangerAccessResult(serviceName, policyRepository == null ? null : policyRepository.getServiceDef(), request);
 	}
 
 	@Override
@@ -160,6 +167,8 @@ public class RangerPolicyEngineImpl implements RangerPolicyEngine {
 			LOG.debug("==> RangerPolicyEngineImpl.isAccessAllowedNoAudit(" + request + ")");
 		}
 
+		RangerPolicyRepository policyRepository = getPolicyRepository();
+
 		RangerAccessResult ret = createAccessResult(request);
 
 		if(policyRepository != null && ret != null && request != null) {
@@ -191,6 +200,14 @@ public class RangerPolicyEngineImpl implements RangerPolicyEngine {
 		return ret;
 	}
 
+	private RangerPolicyRepository getPolicyRepository() {
+		return this.policyRepository;
+	}
+
+	private void setPolicyRepository(RangerPolicyRepository policyRepository) {
+		this.policyRepository = policyRepository;
+	}
+
 	@Override
 	public String toString( ) {
 		StringBuilder sb = new StringBuilder();
@@ -201,6 +218,8 @@ public class RangerPolicyEngineImpl implements RangerPolicyEngine {
 	}
 
 	public StringBuilder toString(StringBuilder sb) {
+		RangerPolicyRepository policyRepository = getPolicyRepository();
+
 		sb.append("RangerPolicyEngineImpl={");
 
 		sb.append("serviceName={").append(serviceName).append("} ");