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>