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

pradeepagrawal8184 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 9f4d07dc5 RANGER-5764:Enhancing RangerUserStore to include or exclude 
user group mappings (#1185)
9f4d07dc5 is described below

commit 9f4d07dc5dcf7716b70bae064f082af18ef10ef5
Author: abhiishek26 <[email protected]>
AuthorDate: Tue Sep 29 15:24:20 2026 +0530

    RANGER-5764:Enhancing RangerUserStore to include or exclude user group 
mappings (#1185)
---
 .../java/org/apache/ranger/common/RangerUserStoreCache.java    |  5 ++++-
 .../src/main/resources/conf.dist/ranger-admin-site.xml         | 10 ++++++++++
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git 
a/security-admin/src/main/java/org/apache/ranger/common/RangerUserStoreCache.java
 
b/security-admin/src/main/java/org/apache/ranger/common/RangerUserStoreCache.java
index 1b1c1bfc9..0d68cea53 100644
--- 
a/security-admin/src/main/java/org/apache/ranger/common/RangerUserStoreCache.java
+++ 
b/security-admin/src/main/java/org/apache/ranger/common/RangerUserStoreCache.java
@@ -27,6 +27,7 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.HashMap;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Set;
@@ -42,6 +43,7 @@ public class RangerUserStoreCache {
 
     private final int             waitTimeInSeconds;
     private final boolean         dedupStrings;
+    private final boolean         includeUserGroupMappings;
     private final ReentrantLock   lock = new ReentrantLock();
     private       RangerUserStore rangerUserStore;
 
@@ -49,6 +51,7 @@ private RangerUserStoreCache() {
         RangerAdminConfig config = RangerAdminConfig.getInstance();
 
         this.waitTimeInSeconds = 
config.getInt("ranger.admin.userstore.download.cache.max.waittime.for.update", 
MAX_WAIT_TIME_FOR_UPDATE);
+        this.includeUserGroupMappings = 
config.getBoolean("ranger.admin.userstore.include.usergroups.mappings", false);
         this.dedupStrings      = 
config.getBoolean("ranger.admin.userstore.dedup.strings", Boolean.TRUE);
         this.rangerUserStore   = new RangerUserStore();
     }
@@ -93,7 +96,7 @@ public RangerUserStore 
getLatestRangerUserStoreOrCached(XUserMgr xUserMgr) {
                     final long                     startTimeMs      = 
System.currentTimeMillis();
                     final Set<UserInfo>            rangerUsersInDB  = 
xUserMgr.getUsers();
                     final Set<GroupInfo>           rangerGroupsInDB = 
xUserMgr.getGroups();
-                    final Map<String, Set<String>> userGroups       = 
xUserMgr.getUserGroups();
+                    final Map<String, Set<String>> userGroups       = 
includeUserGroupMappings ? xUserMgr.getUserGroups() : new HashMap<>();
                     final long                     dbLoadTime       = 
System.currentTimeMillis() - startTimeMs;
 
                     if (LOG.isDebugEnabled()) {
diff --git a/security-admin/src/main/resources/conf.dist/ranger-admin-site.xml 
b/security-admin/src/main/resources/conf.dist/ranger-admin-site.xml
index 330d9f69b..17c9aec1c 100644
--- a/security-admin/src/main/resources/conf.dist/ranger-admin-site.xml
+++ b/security-admin/src/main/resources/conf.dist/ranger-admin-site.xml
@@ -389,6 +389,16 @@
                <name>ranger.downloadpolicy.session.log.enabled</name>
                <value>false</value>
        </property>
+       <!-- User-store download Properties starts-->
+       <property>
+               <name>ranger.admin.userstore.include.usergroups.mappings</name>
+               <value>false</value>
+               <description>
+                       When set to true, the user-store download API includes 
the user-to-group mappings (userGroupMapping) in the response payload,
+               </description>
+       </property>
+       <!-- User-store download Properties ends-->
+
        <!-- Service user for KMS -->
     <property>
        <name>ranger.kms.service.user.hdfs</name>

Reply via email to