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 2021/11/29 21:57:50 UTC
[ranger] branch ranger-2.3 updated: RANGER-3526: policy evaluation ordering to use name as secondary sorting key - #2
This is an automated email from the ASF dual-hosted git repository.
madhan pushed a commit to branch ranger-2.3
in repository https://gitbox.apache.org/repos/asf/ranger.git
The following commit(s) were added to refs/heads/ranger-2.3 by this push:
new ed0fe3a RANGER-3526: policy evaluation ordering to use name as secondary sorting key - #2
ed0fe3a is described below
commit ed0fe3a19bf531316d2b128afd6e4ae8c87328d2
Author: Madhan Neethiraj <ma...@apache.org>
AuthorDate: Mon Nov 29 09:03:09 2021 -0800
RANGER-3526: policy evaluation ordering to use name as secondary sorting key - #2
(cherry picked from commit fe97016e147295aef5aa9041744452bb647cc724)
---
.../plugin/policyevaluator/RangerPolicyEvaluator.java | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerPolicyEvaluator.java b/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerPolicyEvaluator.java
index 8fbbf94..0b7f7ba 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerPolicyEvaluator.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerPolicyEvaluator.java
@@ -33,8 +33,6 @@ import java.util.Set;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.ranger.plugin.model.RangerPolicy;
-import org.apache.ranger.plugin.model.RangerPolicy.RangerPolicyItemDataMaskInfo;
-import org.apache.ranger.plugin.model.RangerPolicy.RangerPolicyItemRowFilterInfo;
import org.apache.ranger.plugin.model.RangerPolicy.RangerDataMaskPolicyItem;
import org.apache.ranger.plugin.model.RangerPolicy.RangerPolicyItem;
import org.apache.ranger.plugin.model.RangerPolicy.RangerPolicyItemAccess;
@@ -55,10 +53,8 @@ import org.apache.ranger.plugin.policyresourcematcher.RangerPolicyResourceMatche
import static org.apache.ranger.plugin.policyevaluator.RangerPolicyItemEvaluator.POLICY_ITEM_TYPE_ALLOW;
import static org.apache.ranger.plugin.policyevaluator.RangerPolicyItemEvaluator.POLICY_ITEM_TYPE_ALLOW_EXCEPTIONS;
-import static org.apache.ranger.plugin.policyevaluator.RangerPolicyItemEvaluator.POLICY_ITEM_TYPE_DATAMASK;
import static org.apache.ranger.plugin.policyevaluator.RangerPolicyItemEvaluator.POLICY_ITEM_TYPE_DENY;
import static org.apache.ranger.plugin.policyevaluator.RangerPolicyItemEvaluator.POLICY_ITEM_TYPE_DENY_EXCEPTIONS;
-import static org.apache.ranger.plugin.policyevaluator.RangerPolicyItemEvaluator.POLICY_ITEM_TYPE_ROWFILTER;
public interface RangerPolicyEvaluator extends RangerPolicyResourceEvaluator {
Comparator<RangerPolicyEvaluator> EVAL_ORDER_COMPARATOR = new RangerPolicyEvaluator.PolicyEvalOrderComparator();
@@ -184,6 +180,14 @@ public interface RangerPolicyEvaluator extends RangerPolicyResourceEvaluator {
return CollectionUtils.isNotEmpty(policyItem.getRoles());
}
+ static int compareStrings(String str1, String str2) {
+ if (str1 == null) {
+ return str2 == null ? 0 : -1;
+ } else {
+ return str2 == null ? 1 : str1.compareTo(str2);
+ }
+ }
+
class PolicyEvalOrderComparator implements Comparator<RangerPolicyEvaluator>, Serializable {
@Override
public int compare(RangerPolicyEvaluator me, RangerPolicyEvaluator other) {
@@ -203,7 +207,7 @@ public interface RangerPolicyEvaluator extends RangerPolicyResourceEvaluator {
result = Integer.compare(me.getEvalOrder(), other.getEvalOrder());
if (result == 0) {
- result = me.getPolicy().getName().compareTo(other.getPolicy().getName());
+ result = compareStrings(me.getPolicy().getName(), other.getPolicy().getName());
}
}
@@ -227,7 +231,7 @@ public interface RangerPolicyEvaluator extends RangerPolicyResourceEvaluator {
} else if (!me.hasDeny() && other.hasDeny()) {
result = 1;
} else {
- result = me.getPolicy().getName().compareTo(other.getPolicy().getName());
+ result = compareStrings(me.getPolicy().getName(), other.getPolicy().getName());
}
return result;