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

abhay 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 a378f285a RANGER-4192: A higher priority Data-masking policy is not 
considered when computing Datamask type
a378f285a is described below

commit a378f285a540dcee5f71069c613e198e024d0872
Author: Abhay Kulkarni <[email protected]>
AuthorDate: Tue Apr 18 15:41:46 2023 -0700

    RANGER-4192: A higher priority Data-masking policy is not considered when 
computing Datamask type
---
 .../RangerDefaultDataMaskPolicyItemEvaluator.java     |  6 ------
 .../policyevaluator/RangerDefaultPolicyEvaluator.java |  4 +++-
 .../RangerDefaultRowFilterPolicyItemEvaluator.java    | 19 ++++++++-----------
 3 files changed, 11 insertions(+), 18 deletions(-)

diff --git 
a/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerDefaultDataMaskPolicyItemEvaluator.java
 
b/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerDefaultDataMaskPolicyItemEvaluator.java
index d979e97e1..6bf768bf1 100644
--- 
a/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerDefaultDataMaskPolicyItemEvaluator.java
+++ 
b/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerDefaultDataMaskPolicyItemEvaluator.java
@@ -80,12 +80,6 @@ public class RangerDefaultDataMaskPolicyItemEvaluator 
extends RangerDefaultPolic
                                
result.setMaskCondition(dataMaskInfo.getConditionExpr());
                        }
 
-                       result.setIsAccessDetermined(true);
-                       
result.setPolicyPriority(policyEvaluator.getPolicyPriority());
-                       result.setPolicyId(policyEvaluator.getPolicyId());
-                       result.setReason(getComments());
-                       
result.setPolicyVersion(policyEvaluator.getPolicy().getVersion());
-
                        policyEvaluator.updateAccessResult(result, matchType, 
true, getComments());
                }
        }
diff --git 
a/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerDefaultPolicyEvaluator.java
 
b/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerDefaultPolicyEvaluator.java
index 2f9c1b019..96e232b43 100644
--- 
a/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerDefaultPolicyEvaluator.java
+++ 
b/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerDefaultPolicyEvaluator.java
@@ -887,7 +887,9 @@ public class RangerDefaultPolicyEvaluator extends 
RangerAbstractPolicyEvaluator
                                }
 
                                if (allowResult != null) {
-                                       result.setAccessResultFrom(allowResult);
+                                       if (!result.getIsAllowed() || 
result.getPolicyPriority() < allowResult.getPolicyPriority()) {
+                                               
result.setAccessResultFrom(allowResult);
+                                       }
                                } else if (denyResult != null) {
                                        result.setAccessResultFrom(denyResult);
                                }
diff --git 
a/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerDefaultRowFilterPolicyItemEvaluator.java
 
b/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerDefaultRowFilterPolicyItemEvaluator.java
index 63b3be964..d2b3e746b 100644
--- 
a/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerDefaultRowFilterPolicyItemEvaluator.java
+++ 
b/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerDefaultRowFilterPolicyItemEvaluator.java
@@ -34,7 +34,7 @@ public class RangerDefaultRowFilterPolicyItemEvaluator 
extends RangerDefaultPoli
        final private RangerRequestExprResolver exprResolver;
 
        public RangerDefaultRowFilterPolicyItemEvaluator(RangerServiceDef 
serviceDef, RangerPolicy policy, RangerRowFilterPolicyItem policyItem, int 
policyItemIndex, RangerPolicyEngineOptions options) {
-               super(serviceDef, policy, policyItem, 
RangerPolicyItemEvaluator.POLICY_ITEM_TYPE_DATAMASK, policyItemIndex, options);
+               super(serviceDef, policy, policyItem, 
RangerPolicyItemEvaluator.POLICY_ITEM_TYPE_ROWFILTER, policyItemIndex, options);
 
                rowFilterPolicyItem = policyItem;
 
@@ -60,17 +60,14 @@ public class RangerDefaultRowFilterPolicyItemEvaluator 
extends RangerDefaultPoli
 
        @Override
        public void updateAccessResult(RangerPolicyEvaluator policyEvaluator, 
RangerAccessResult result, RangerPolicyResourceMatcher.MatchType matchType) {
-               if (result.getFilterExpr() == null) {
-                       if (exprResolver != null) {
-                               
result.setFilterExpr(exprResolver.resolveExpressions(result.getAccessRequest()));
-                       } else if (rowFilterExpr != null) {
-                               result.setFilterExpr(rowFilterExpr);
-                       }
+               if (exprResolver != null) {
+                       
result.setFilterExpr(exprResolver.resolveExpressions(result.getAccessRequest()));
+               } else if (rowFilterExpr != null) {
+                       result.setFilterExpr(rowFilterExpr);
+               }
 
-                       if (result.getFilterExpr() != null) {
-                               policyEvaluator.updateAccessResult(result, 
matchType, true, getComments());
-                               result.setIsAccessDetermined(true);
-                       }
+               if (result.getFilterExpr() != null) {
+                       policyEvaluator.updateAccessResult(result, matchType, 
true, getComments());
                }
        }
 }

Reply via email to