You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by zs...@apache.org on 2018/03/26 09:09:05 UTC

ranger git commit: RANGER-2016 : fix NPE caused by a code path, where a HttpServletRequest is passed as null, and re-introduce the non-null validity check

Repository: ranger
Updated Branches:
  refs/heads/master 5f6e6ce72 -> ab0b91fd6


RANGER-2016 : fix NPE caused by a code path, where a HttpServletRequest is passed as null, and re-introduce the non-null validity check


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

Branch: refs/heads/master
Commit: ab0b91fd666feb034a7a3c06d419d915f8c6721d
Parents: 5f6e6ce
Author: Zsombor Gegesy <zs...@apache.org>
Authored: Sun Mar 11 20:39:24 2018 +0100
Committer: Zsombor Gegesy <zs...@apache.org>
Committed: Mon Mar 26 11:07:27 2018 +0200

----------------------------------------------------------------------
 .../apache/ranger/common/RangerSearchUtil.java  |  7 ++--
 .../org/apache/ranger/rest/ServiceREST.java     | 34 ++++++++++----------
 2 files changed, 20 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ranger/blob/ab0b91fd/security-admin/src/main/java/org/apache/ranger/common/RangerSearchUtil.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/common/RangerSearchUtil.java b/security-admin/src/main/java/org/apache/ranger/common/RangerSearchUtil.java
index c2783dc..94374ab 100644
--- a/security-admin/src/main/java/org/apache/ranger/common/RangerSearchUtil.java
+++ b/security-admin/src/main/java/org/apache/ranger/common/RangerSearchUtil.java
@@ -33,6 +33,7 @@ import javax.servlet.http.HttpServletRequest;
 import org.apache.commons.collections.MapUtils;
 import org.apache.commons.lang.ArrayUtils;
 import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.Validate;
 import org.apache.log4j.Logger;
 import org.apache.ranger.plugin.util.SearchFilter;
 import org.springframework.stereotype.Component;
@@ -42,7 +43,7 @@ public class RangerSearchUtil extends SearchUtil {
 	final static Logger logger = Logger.getLogger(RangerSearchUtil.class);
 	
 	public SearchFilter getSearchFilter(@Nonnull HttpServletRequest request, List<SortField> sortFields) {
-
+		Validate.notNull(request, "request");
 		SearchFilter ret = new SearchFilter();
 
 		if (MapUtils.isEmpty(request.getParameterMap())) {
@@ -112,9 +113,7 @@ public class RangerSearchUtil extends SearchUtil {
 
 
 	public SearchFilter getSearchFilterFromLegacyRequest(HttpServletRequest request, List<SortField> sortFields) {
-		if (request == null) {
-			return null;
-		}
+		Validate.notNull(request, "request");
 		SearchFilter ret = new SearchFilter();
 
 		if (MapUtils.isEmpty(request.getParameterMap())) {

http://git-wip-us.apache.org/repos/asf/ranger/blob/ab0b91fd/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java
----------------------------------------------------------------------
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 3642252..1bff815 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
@@ -2089,7 +2089,7 @@ public class ServiceREST {
 							LOG.debug("Deleting Policy from provided services in servicesMapJson file...");
 						}
 						if (CollectionUtils.isNotEmpty(sourceServices) && CollectionUtils.isNotEmpty(destinationServices)) {
-							deletePoliciesProvidedInServiceMap(sourceServices, destinationServices, null);
+							deletePoliciesProvidedInServiceMap(sourceServices, destinationServices);
 						}
 					}
 
@@ -2303,16 +2303,14 @@ public class ServiceREST {
 	}
 	
 	private void deletePoliciesProvidedInServiceMap(
-			List<String> sourceServices, List<String> destinationServices,
-			HttpServletRequest request) {
+			List<String> sourceServices, List<String> destinationServices) {
 		int totalDeletedPilicies = 0;
 		if (CollectionUtils.isNotEmpty(sourceServices)
 				&& CollectionUtils.isNotEmpty(destinationServices)) {
 			RangerPolicyValidator validator = validatorFactory.getPolicyValidator(svcStore);
 			for (int i = 0; i < sourceServices.size(); i++) {
 				if (!destinationServices.get(i).isEmpty()) {
-					RangerPolicyList servicePolicies = null;
-					servicePolicies = getServicePoliciesByName(destinationServices.get(i), request);
+					final RangerPolicyList servicePolicies = getServicePolicies(destinationServices.get(i), new SearchFilter());
 					if (servicePolicies != null) {
 						List<RangerPolicy> rangerPolicyList = servicePolicies.getPolicies();
 						if (CollectionUtils.isNotEmpty(rangerPolicyList)) {
@@ -2535,11 +2533,20 @@ public class ServiceREST {
 			LOG.debug("==> ServiceREST.getServicePolicies(" + serviceName + ")");
 		}
 
-		RangerPolicyList ret  = new RangerPolicyList();
-		RangerPerfTracer perf = null;
-
 		SearchFilter filter = searchUtil.getSearchFilter(request, policyService.sortFields);
 
+		RangerPolicyList ret = getServicePolicies(serviceName, filter);
+
+		if (LOG.isDebugEnabled()) {
+			LOG.debug("<== ServiceREST.getServicePolicies(" + serviceName + "): count="
+					+ (ret == null ? 0 : ret.getListSize()));
+		}
+
+		return ret;
+	}
+
+	private RangerPolicyList getServicePolicies(String serviceName, SearchFilter filter) {
+		RangerPerfTracer perf = null;
 		try {
 			if(RangerPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
 				perf = RangerPerfTracer.getPerfTracer(PERF_LOG, "ServiceREST.getServicePolicies(serviceName=" + serviceName + ")");
@@ -2548,7 +2555,7 @@ public class ServiceREST {
 			if(isAdminUserWithNoFilterParams(filter)) {
 				PList<RangerPolicy> policies = svcStore.getPaginatedServicePolicies(serviceName, filter);
 
-				ret = toRangerPolicyList(policies);
+				return toRangerPolicyList(policies);
 			} else {
 				// get all policies from the store; pick the page to return after applying filter
 				int savedStartIndex = filter == null ? 0 : filter.getStartIndex();
@@ -2568,7 +2575,7 @@ public class ServiceREST {
 
 				servicePolicies = applyAdminAccessFilter(servicePolicies);
 
-				ret = toRangerPolicyList(servicePolicies, filter);
+				return toRangerPolicyList(servicePolicies, filter);
 			}
 		} catch(WebApplicationException excp) {
 			throw excp;
@@ -2579,13 +2586,6 @@ public class ServiceREST {
 		} finally {
 			RangerPerfTracer.log(perf);
 		}
-
-		if (LOG.isDebugEnabled()) {
-			LOG.debug("<== ServiceREST.getServicePolicies(" + serviceName + "): count="
-					+ (ret == null ? 0 : ret.getListSize()));
-		}
-
-		return ret;
 	}
 
 	@GET