You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by me...@apache.org on 2021/10/29 12:43:01 UTC

[ranger] branch master updated: RANGER-3433: Null Dereference in ServiceREST getPolicyByName method

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

mehul 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 1639896  RANGER-3433: Null Dereference in ServiceREST getPolicyByName method
1639896 is described below

commit 1639896aac695057971c7b73a0b91265b3c3e772
Author: Kishor Gollapalliwar <ki...@gmail.com>
AuthorDate: Mon Oct 25 12:17:11 2021 +0530

    RANGER-3433: Null Dereference in ServiceREST getPolicyByName method
    
    Signed-off-by: Mehul Parikh <me...@apache.org>
---
 .../java/org/apache/ranger/rest/ServiceREST.java   | 45 ++++++++++++++--------
 1 file changed, 28 insertions(+), 17 deletions(-)

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 01e952a..3ba2965 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
@@ -4219,26 +4219,37 @@ public class ServiceREST {
 		return ret;
 	}
 
-	private RangerPolicy getPolicyByName(String serviceName,String policyName) {
-		RangerPolicy ret = null;
-		if(LOG.isDebugEnabled()) {
-			LOG.debug("==> ServiceREST.getPolicyByName(" + serviceName + "," + policyName + ")");
-		}
+	/**
+	 * Returns {@link RangerPolicy} for non-empty serviceName and policyName, null otherwise.
+	 * @param serviceName
+	 * @param policyName
+	 * @return
+	 */
+    private RangerPolicy getPolicyByName(String serviceName, String policyName) {
 
-		SearchFilter filter = new SearchFilter();
-		filter.setParam(SearchFilter.SERVICE_NAME, serviceName);
-		filter.setParam(SearchFilter.POLICY_NAME, policyName);
-		List<RangerPolicy> policies = getPolicies(filter);
+        if (LOG.isDebugEnabled()) {
+            LOG.debug("==> ServiceREST.getPolicyByName(" + serviceName + "," + policyName + ")");
+        }
 
-		if (CollectionUtils.isNotEmpty(policies)) {
-			ret = policies.get(0);
-		}
+        RangerPolicy ret = null;
+        if (StringUtils.isNotBlank(serviceName) && StringUtils.isNotBlank(policyName)) {
+            SearchFilter filter = new SearchFilter();
 
-		if(LOG.isDebugEnabled()) {
-			LOG.debug("<== ServiceREST.getPolicyByName(" + serviceName + "," + policyName + ")" + ret);
-		}
-		return ret;
-	}
+            filter.setParam(SearchFilter.SERVICE_NAME, serviceName);
+            filter.setParam(SearchFilter.POLICY_NAME, policyName);
+
+            List<RangerPolicy> policies = getPolicies(filter);
+
+            if (CollectionUtils.isNotEmpty(policies)) {
+                ret = policies.get(0);
+            }
+        }
+
+        if (LOG.isDebugEnabled()) {
+            LOG.debug("<== ServiceREST.getPolicyByName(" + serviceName + "," + policyName + ") " + (ret != null ? ret : "ret is null"));
+        }
+        return ret;
+    }
 
 	private RangerPolicy getPolicyByNameAndZone(String serviceName, String policyName, String zoneName) {
 		RangerPolicy ret = null;