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/05/17 05:38:25 UTC

[ranger] branch master updated: RANGER-3238: Incorrect response for 'ranger_metric denyconditions' in Collect Diagnostic Data

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 6149013  RANGER-3238: Incorrect response for 'ranger_metric denyconditions' in Collect Diagnostic Data
6149013 is described below

commit 61490135f100ab91ac6cb98392759e1ec7e4f8dc
Author: BHAGYASHRI KOKATE <bh...@freestoneinfotech.com>
AuthorDate: Fri Apr 30 23:43:19 2021 +0530

    RANGER-3238: Incorrect response for 'ranger_metric denyconditions' in Collect Diagnostic Data
    
    Signed-off-by: Mehul Parikh <me...@apache.org>
---
 .../src/main/java/org/apache/ranger/plugin/util/SearchFilter.java   | 4 +++-
 .../src/main/java/org/apache/ranger/biz/ServiceDBStore.java         | 6 ++++--
 .../src/main/java/org/apache/ranger/patch/cliutil/MetricUtil.java   | 1 +
 .../java/org/apache/ranger/service/RangerServiceDefServiceBase.java | 5 +++--
 4 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/util/SearchFilter.java b/agents-common/src/main/java/org/apache/ranger/plugin/util/SearchFilter.java
index c17c63b..c5f13b5 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/util/SearchFilter.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/util/SearchFilter.java
@@ -86,8 +86,10 @@ public class SearchFilter {
 	public static final String PLUGIN_ENTITY_TYPE        = "pluginEntityType";
 	public static final String PLUGIN_IP_ADDRESS         = "pluginIpAddress";
 	public static final String CLUSTER_NAME              = "clusterName";
-	public static final String FETCH_ZONE_UNZONE_POLICIES        = "fetchZoneAndUnzonePolicies";
+	public static final String FETCH_ZONE_UNZONE_POLICIES= "fetchZoneAndUnzonePolicies";
 	public static final String FETCH_TAG_POLICIES        = "fetchTagPolicies";
+	public static final String FETCH_ZONE_NAME			 = "zoneName";
+	public static final String FETCH_DENY_CONDITION      = "denyCondition";
 
 	public static final String SERVICE_DISPLAY_NAME			= "serviceDisplayName";			// search, sort
 	public static final String SERVICE_DISPLAY_NAME_PARTIAL	= "serviceDisplayNamePartial";	// search
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 50eeb20..50ab32f 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
@@ -2447,7 +2447,8 @@ public class ServiceDBStore extends AbstractServiceStore {
 		if(LOG.isDebugEnabled()) {
 			LOG.debug("==> ServiceDBStore.getServicePolicies(" + serviceId + ")");
 		}
-		String zoneName = filter.getParam("zoneName");
+		String zoneName = filter.getParam(SearchFilter.FETCH_ZONE_NAME);
+		String denyCondition = filter.getParam(SearchFilter.FETCH_DENY_CONDITION);
 		XXService service = daoMgr.getXXService().getById(serviceId);
 
 		if (service == null) {
@@ -2456,7 +2457,7 @@ public class ServiceDBStore extends AbstractServiceStore {
 
 		List<RangerPolicy> ret = getServicePolicies(service, filter);
 		if(!"true".equalsIgnoreCase(filter.getParam(SearchFilter.FETCH_ZONE_UNZONE_POLICIES))) {
-			if(StringUtils.isBlank(zoneName)) {
+			if(StringUtils.isBlank(zoneName) && StringUtils.isBlank(denyCondition)) {
 				ret = noZoneFilter(ret);
 			}
 		}
@@ -5269,6 +5270,7 @@ public class ServiceDBStore extends AbstractServiceStore {
                             policyFilter1.setGetCount(true);
                             policyFilter1.setSortBy("serviceId");
                             policyFilter1.setSortType("asc");
+                            policyFilter1.setParam("denyCondition", "true");
                             int denyCount = 0;
                             Map<String, Integer> denyconditionsonMap = new HashMap<String, Integer>();
                             PList<RangerServiceDef> paginatedSvcDefs = getPaginatedServiceDefs(policyFilter1);
diff --git a/security-admin/src/main/java/org/apache/ranger/patch/cliutil/MetricUtil.java b/security-admin/src/main/java/org/apache/ranger/patch/cliutil/MetricUtil.java
index 9c0af02..ac584d3 100644
--- a/security-admin/src/main/java/org/apache/ranger/patch/cliutil/MetricUtil.java
+++ b/security-admin/src/main/java/org/apache/ranger/patch/cliutil/MetricUtil.java
@@ -381,6 +381,7 @@ public class MetricUtil extends BaseLoader  {
 										String serviceDef = rangerServiceDef.getName();
 										if (!StringUtils.isEmpty(serviceDef)) {
 											policyFilter1.setParam("serviceType", serviceDef);
+											policyFilter1.setParam("denyCondition", "true");
 											PList<RangerPolicy> policiesList = svcStore.getPaginatedPolicies(policyFilter1);
 											if (policiesList != null && policiesList.getListSize() > 0) {
 												int policyListCount = policiesList.getListSize();
diff --git a/security-admin/src/main/java/org/apache/ranger/service/RangerServiceDefServiceBase.java b/security-admin/src/main/java/org/apache/ranger/service/RangerServiceDefServiceBase.java
index d8ecd5f..4fe19c4 100644
--- a/security-admin/src/main/java/org/apache/ranger/service/RangerServiceDefServiceBase.java
+++ b/security-admin/src/main/java/org/apache/ranger/service/RangerServiceDefServiceBase.java
@@ -582,9 +582,10 @@ public abstract class RangerServiceDefServiceBase<T extends XXServiceDefBase, V
 		RangerServiceDefList retList = new RangerServiceDefList();
 		int startIndex = searchFilter.getStartIndex();
 		int pageSize = searchFilter.getMaxRows();
+		String denyCondition = searchFilter.getParam(SearchFilter.FETCH_DENY_CONDITION);
 		searchFilter.setStartIndex(0);
 		searchFilter.setMaxRows(Integer.MAX_VALUE);
-	
+
 		boolean isAuditPage=false;
 		if(searchFilter.getParam("pageSource")!=null){
 			isAuditPage=true;
@@ -593,7 +594,7 @@ public abstract class RangerServiceDefServiceBase<T extends XXServiceDefBase, V
 				retList);
 		List<T> permittedServiceDefs = new ArrayList<T>();
 		for (T xSvcDef : xSvcDefList) {
-			if (bizUtil.hasAccess(xSvcDef, null) || (bizUtil.isAdmin() && isAuditPage) ) {
+			if ((bizUtil.hasAccess(xSvcDef, null) || (bizUtil.isAdmin() && isAuditPage)) || ("true".equals(denyCondition))) {
 				permittedServiceDefs.add(xSvcDef);
 			}
 		}