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 2026/05/14 16:38:53 UTC

(ranger) 01/01: RANGER-5597: [GDS] Validity Period is not working for project policy

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

maheshbandal15 pushed a commit to branch mb-ranger-5597
in repository https://gitbox.apache.org/repos/asf/ranger.git

commit 57a384ac8fbf57899830a461667a51f7b8383318
Author: Mahesh Bandal <ma...@apache.org>
AuthorDate: Thu May 14 22:07:19 2026 +0530

    RANGER-5597: [GDS] Validity Period is not working for project policy
---
 .../ranger/plugin/policyengine/gds/GdsProjectEvaluator.java  | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/gds/GdsProjectEvaluator.java b/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/gds/GdsProjectEvaluator.java
index 52220563c..2d2e671ed 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/gds/GdsProjectEvaluator.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/gds/GdsProjectEvaluator.java
@@ -40,6 +40,7 @@
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
+import java.util.Date;
 import java.util.List;
 import java.util.Set;
 
@@ -97,7 +98,8 @@ public boolean isActive() {
     }
 
     public void evaluate(RangerAccessRequest request, GdsAccessResult result) {
-        LOG.debug("==> GdsDatasetEvaluator.evaluate({}, {})", request, result);
+        LOG.debug("==> GdsProjectEvaluator.evaluate({}, {})", request, result);
+        final Date accessTime = request.getAccessTime() != null ? request.getAccessTime() : new Date();
 
         if (isActive()) {
             result.addProject(getName());
@@ -110,7 +112,11 @@ public void evaluate(RangerAccessRequest request, GdsAccessResult result) {
                     RangerAccessRequestUtil.setAllRequestedAccessTypes(projectRequest.getContext(), null);
                     RangerAccessRequestUtil.setAccessTypeACLResults(projectRequest.getContext(), null);
 
-                    policyEvaluators.forEach(e -> e.evaluate(projectRequest, projectResult));
+                    policyEvaluators.forEach(e -> {
+                        if (e.isApplicable(accessTime)) {
+                            e.evaluate(projectRequest, projectResult);
+                        }
+                    });
                 } finally {
                     RangerAccessRequestUtil.setAccessTypeResults(projectRequest.getContext(), null);
                     RangerAccessRequestUtil.setAccessTypeACLResults(projectRequest.getContext(), null);
@@ -134,7 +140,7 @@ public void evaluate(RangerAccessRequest request, GdsAccessResult result) {
             }
         }
 
-        LOG.debug("<== GdsDatasetEvaluator.evaluate({}, {})", request, result);
+        LOG.debug("<== GdsProjectEvaluator.evaluate({}, {})", request, result);
     }
 
     public void getResourceACLs(RangerAccessRequest request, RangerResourceACLs acls, boolean isConditional, Set<String> allowedAccessTypes) {