This is an automated email from the ASF dual-hosted git repository.
madhan 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 be31caf18 RANGER-4389: userstore to include internal attributes
syncSource/isInternal/emailAddress
be31caf18 is described below
commit be31caf189fb0552de52b1b9b6a1ab76fe206a96
Author: Madhan Neethiraj <[email protected]>
AuthorDate: Wed Aug 30 23:32:37 2023 -0700
RANGER-4389: userstore to include internal attributes
syncSource/isInternal/emailAddress
---
.../ranger/plugin/util/RangerCommonConstants.java | 3 +++
.../main/java/org/apache/ranger/db/XXGroupDao.java | 17 +++++++++++++
.../main/java/org/apache/ranger/db/XXUserDao.java | 29 +++++++++++++++++++---
.../main/resources/META-INF/jpa_named_queries.xml | 6 ++---
4 files changed, 48 insertions(+), 7 deletions(-)
diff --git
a/agents-common/src/main/java/org/apache/ranger/plugin/util/RangerCommonConstants.java
b/agents-common/src/main/java/org/apache/ranger/plugin/util/RangerCommonConstants.java
index 54991deca..fa59e8d58 100644
---
a/agents-common/src/main/java/org/apache/ranger/plugin/util/RangerCommonConstants.java
+++
b/agents-common/src/main/java/org/apache/ranger/plugin/util/RangerCommonConstants.java
@@ -82,6 +82,9 @@ public class RangerCommonConstants {
public static final String SCRIPT_FIELD_FORWARDED_ADDRESSES =
"forwardedAddresses";
public static final String SCRIPT_FIELD__MATCH_TYPE =
"_matchType";
public static final String SCRIPT_FIELD__NAME =
"_name";
+ public static final String SCRIPT_FIELD__SYNC_SOURCE =
"_syncSource";
+ public static final String SCRIPT_FIELD__IS_INTERNAL =
"_isInternal";
+ public static final String SCRIPT_FIELD__EMAIL_ADDRESS =
"_emailAddress";
public static final String SCRIPT_FIELD__OWNER_USER =
"_ownerUser";
public static final String SCRIPT_FIELD_REMOTE_IP_ADDRESS =
"remoteIPAddress";
public static final String SCRIPT_FIELD_REQUEST =
"request";
diff --git a/security-admin/src/main/java/org/apache/ranger/db/XXGroupDao.java
b/security-admin/src/main/java/org/apache/ranger/db/XXGroupDao.java
index 942d2514c..f910e92ee 100644
--- a/security-admin/src/main/java/org/apache/ranger/db/XXGroupDao.java
+++ b/security-admin/src/main/java/org/apache/ranger/db/XXGroupDao.java
@@ -28,6 +28,7 @@ import java.util.Map;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import org.apache.commons.lang3.StringUtils;
+import org.apache.ranger.common.RangerCommonEnums;
import org.apache.ranger.common.db.BaseDao;
import org.apache.ranger.entity.XXGroup;
import org.apache.ranger.plugin.model.GroupInfo;
@@ -37,6 +38,9 @@ import org.springframework.stereotype.Service;
import javax.persistence.NoResultException;
+import static
org.apache.ranger.plugin.util.RangerCommonConstants.SCRIPT_FIELD__IS_INTERNAL;
+import static
org.apache.ranger.plugin.util.RangerCommonConstants.SCRIPT_FIELD__SYNC_SOURCE;
+
@Service
public class XXGroupDao extends BaseDao<XXGroup> {
private static final Logger logger =
LoggerFactory.getLogger(XXGroupDao.class);
@@ -120,6 +124,9 @@ public class XXGroupDao extends BaseDao<XXGroup> {
String name = (String) row[0];
String description = (String) row[1];
String attributes = (String) row[2];
+ String syncSource = (String) row[3];
+ Number groupSource = (Number) row[4];
+ Boolean isInternal = groupSource != null &&
groupSource.equals(RangerCommonEnums.GROUP_INTERNAL);
Map<String, String> attrMap = null;
if (StringUtils.isNotBlank(attributes)) {
@@ -130,6 +137,16 @@ public class XXGroupDao extends BaseDao<XXGroup> {
}
}
+ if (attrMap == null) {
+ attrMap = new HashMap<>();
+ }
+
+ if (StringUtils.isNotBlank(syncSource)) {
+ attrMap.put(SCRIPT_FIELD__SYNC_SOURCE, syncSource);
+ }
+
+ attrMap.put(SCRIPT_FIELD__IS_INTERNAL, isInternal.toString());
+
return new GroupInfo(name, description, attrMap);
}
}
diff --git a/security-admin/src/main/java/org/apache/ranger/db/XXUserDao.java
b/security-admin/src/main/java/org/apache/ranger/db/XXUserDao.java
index eb6028825..fc1968352 100644
--- a/security-admin/src/main/java/org/apache/ranger/db/XXUserDao.java
+++ b/security-admin/src/main/java/org/apache/ranger/db/XXUserDao.java
@@ -24,6 +24,7 @@ import javax.persistence.NoResultException;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import org.apache.commons.lang3.StringUtils;
+import org.apache.ranger.common.RangerCommonEnums;
import org.apache.ranger.common.db.BaseDao;
import org.apache.ranger.entity.XXUser;
import org.apache.ranger.plugin.model.UserInfo;
@@ -38,6 +39,8 @@ import java.util.Map;
import java.util.ArrayList;
import java.util.HashMap;
+import static org.apache.ranger.plugin.util.RangerCommonConstants.*;
+
@Service
public class XXUserDao extends BaseDao<XXUser> {
@@ -152,10 +155,14 @@ public class XXUserDao extends BaseDao<XXUser> {
}
private UserInfo toUserInfo(Object[] row) {
- String name = (String) row[0];
- String description = (String) row[1];
- String attributes = (String) row[2];
- Map<String, String> attrMap = null;
+ String name = (String) row[0];
+ String description = (String) row[1];
+ String attributes = (String) row[2];
+ String syncSource = (String) row[3];
+ Number userSource = (Number) row[4];
+ String emailAddress = (String) row[5];
+ Boolean isInternal = userSource != null &&
userSource.equals(RangerCommonEnums.USER_APP);
+ Map<String, String> attrMap = null;
if (StringUtils.isNotBlank(attributes)) {
try {
@@ -165,6 +172,20 @@ public class XXUserDao extends BaseDao<XXUser> {
}
}
+ if (attrMap == null) {
+ attrMap = new HashMap<>();
+ }
+
+ if (StringUtils.isNotBlank(syncSource)) {
+ attrMap.put(SCRIPT_FIELD__SYNC_SOURCE, syncSource);
+ }
+
+ if (StringUtils.isNotBlank(emailAddress)) {
+ attrMap.put(SCRIPT_FIELD__EMAIL_ADDRESS, emailAddress);
+ }
+
+ attrMap.put(SCRIPT_FIELD__IS_INTERNAL, isInternal.toString());
+
return new UserInfo(name, description, attrMap);
}
}
diff --git a/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
b/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
index a099c4b9c..23085a273 100755
--- a/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
+++ b/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
@@ -162,7 +162,7 @@
</named-query>
<named-query name="XXGroup.getAllGroupsInfo">
- <query>SELECT group.name, group.description,
group.otherAttributes
+ <query>SELECT group.name, group.description,
group.otherAttributes, group.syncSource, group.groupSource
FROM XXGroup group
WHERE group.isVisible = 1
</query>
@@ -186,8 +186,8 @@
</named-query>
<named-query name="XXUser.getAllUsersInfo">
- <query>SELECT user.name, user.description, user.otherAttributes
- FROM XXUser user
+ <query>SELECT user.name, user.description,
user.otherAttributes, user.syncSource, pUser.userSource, pUser.emailAddress
+ FROM XXUser user LEFT OUTER JOIN XXPortalUser pUser ON
pUser.loginId = user.name
WHERE user.isVisible = 1
</query>
</named-query>