From e2b19b9a962a4e635c646fd3186299fc1a71633b Mon Sep 17 00:00:00 2001 From: Vyom Mani Tiwari Date: Sun, 17 May 2026 17:20:25 +0530 Subject: [PATCH] RANGER-5602: Local build failure due to unit test failure in TestPolicyACLs --- .../validation/RangerServiceDefHelper.java | 46 +++++++++---------- 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/model/validation/RangerServiceDefHelper.java b/agents-common/src/main/java/org/apache/ranger/plugin/model/validation/RangerServiceDefHelper.java index 18b66159f9..84ec768778 100644 --- a/agents-common/src/main/java/org/apache/ranger/plugin/model/validation/RangerServiceDefHelper.java +++ b/agents-common/src/main/java/org/apache/ranger/plugin/model/validation/RangerServiceDefHelper.java @@ -507,14 +507,23 @@ public Delegate(RangerServiceDef serviceDef, boolean checkForCycles) { this.hierarchies.put(policyType, Collections.unmodifiableSet(hierarchies)); hierarchyKeys.put(policyType, Collections.unmodifiableSet(hierachyKeys)); + Map wildcardMap = new HashMap<>(resources.size()); + for (RangerResourceDef res : resources) { + if (res != null) { + wildcardMap.put(res.getName(), createWildcardEnabledResourceDef(res)); + } + } + wildcardEnabledResourceDefs.put(policyType, Collections.unmodifiableMap(wildcardMap)); } else { isValid = false; hierarchies.put(policyType, EMPTY_RESOURCE_HIERARCHY); hierarchyKeys.put(policyType, Collections.emptySet()); + wildcardEnabledResourceDefs.put(policyType, Collections.emptyMap()); } } else { hierarchies.put(policyType, EMPTY_RESOURCE_HIERARCHY); hierarchyKeys.put(policyType, Collections.emptySet()); + wildcardEnabledResourceDefs.put(policyType, Collections.emptyMap()); } } @@ -548,6 +557,15 @@ public Delegate(RangerServiceDef serviceDef, boolean checkForCycles) { LOG.debug("Found [{}] resource hierarchies for service [{}] update-date[{}]: {}", hierarchies.size(), serviceName, serviceDefFreshnessDate, hierarchies); } + private RangerResourceDef createWildcardEnabledResourceDef(RangerResourceDef resourceDef) { + if (resourceDef == null) { + return null; + } + RangerResourceDef ret = new RangerResourceDef(resourceDef); + ret.getMatcherOptions().put(RangerAbstractResourceMatcher.OPTION_WILD_CARD, Boolean.TRUE.toString()); + return ret; + } + public void patchServiceDefWithDefaultValues() { for (int policyType : RangerPolicy.POLICY_TYPES) { Set> resourceHierarchies = getResourceHierarchies(policyType); @@ -686,31 +704,11 @@ RangerResourceDef getWildcardEnabledResourceDef(String resourceName, Integer pol if (policyType == null) { policyType = RangerPolicy.POLICY_TYPE_ACCESS; } - - Map wResourceDefs = wildcardEnabledResourceDefs.computeIfAbsent(policyType, k -> new HashMap<>()); - RangerResourceDef ret = null; - - if (!wResourceDefs.containsKey(resourceName)) { - List resourceDefs = getResourceDefs(servicedef, policyType); - - if (resourceDefs != null) { - for (RangerResourceDef resourceDef : resourceDefs) { - if (StringUtils.equals(resourceName, resourceDef.getName())) { - ret = new RangerResourceDef(resourceDef); - - ret.getMatcherOptions().put(RangerAbstractResourceMatcher.OPTION_WILD_CARD, Boolean.TRUE.toString()); - - break; - } - } - } - - wResourceDefs.put(resourceName, ret); - } else { - ret = wResourceDefs.get(resourceName); + Map wResourceDefs = wildcardEnabledResourceDefs.get(policyType); + if (wResourceDefs == null) { + return null; } - - return ret; + return wResourceDefs.get(resourceName); } List getResourceDefs(RangerServiceDef serviceDef, Integer policyType) {