You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ni...@apache.org on 2019/09/09 14:31:49 UTC
[ranger] branch master updated: RANGER-2561 : add functionality in
ranger to get default policy groups list from service config while creation
of service and add that group to policies in that service
This is an automated email from the ASF dual-hosted git repository.
nikhil 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 3c788da RANGER-2561 : add functionality in ranger to get default policy groups list from service config while creation of service and add that group to policies in that service
3c788da is described below
commit 3c788da0080c680c4c0a4220c23970979908277e
Author: Nikhil P <ni...@apache.org>
AuthorDate: Mon Sep 9 12:13:41 2019 +0530
RANGER-2561 : add functionality in ranger to get default policy groups list from service config while creation of service and add that group to policies in that service
Change-Id: I0e86c6b643a106792d3c69f184a55656d65e5c8c
---
.../ranger/plugin/service/RangerBaseService.java | 45 ++++++++++++++++++++--
1 file changed, 41 insertions(+), 4 deletions(-)
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/service/RangerBaseService.java b/agents-common/src/main/java/org/apache/ranger/plugin/service/RangerBaseService.java
index 8d4e16f..65734f4 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/service/RangerBaseService.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/service/RangerBaseService.java
@@ -23,6 +23,7 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -325,7 +326,7 @@ public abstract class RangerBaseService {
RangerPolicy.RangerPolicyItem policyItem = new RangerPolicy.RangerPolicyItem();
policyItem.setUsers(getUserList());
-
+ policyItem.setGroups(getGroupList());
List<RangerPolicy.RangerPolicyItemAccess> accesses = getAllowedAccesses(policyResources);
policyItem.setAccesses(accesses);
@@ -400,17 +401,27 @@ public abstract class RangerBaseService {
private List<String> getUserList() {
List<String> ret = new ArrayList<>();
+
+ HashSet<String> uniqueUsers = new HashSet<String>();
+ String[] users = RangerConfiguration.getInstance().getStrings("ranger.default.policy.users");
+
+ if (users != null) {
+ for (String user : users) {
+ uniqueUsers.add(user);
+ }
+ }
+
Map<String, String> serviceConfig = service.getConfigs();
if (serviceConfig != null ) {
String serviceConfigUser = serviceConfig.get("username");
if (StringUtils.isNotBlank(serviceConfigUser)){
- ret.add(serviceConfig.get("username"));
+ uniqueUsers.add(serviceConfig.get("username"));
}
String defaultUsers = serviceConfig.get("default.policy.users");
if (!StringUtils.isEmpty(defaultUsers)) {
List<String> defaultUserList = new ArrayList<>(Arrays.asList(StringUtils.split(defaultUsers,",")));
if (!defaultUserList.isEmpty()) {
- ret.addAll(defaultUserList);
+ uniqueUsers.addAll(defaultUserList);
}
}
}
@@ -421,8 +432,34 @@ public abstract class RangerBaseService {
String lookUpUser = getLookupUser(authType, lookupPrincipal, lookupKeytab);
if (StringUtils.isNotBlank(lookUpUser)) {
- ret.add(lookUpUser);
+ uniqueUsers.add(lookUpUser);
+ }
+ ret.addAll(uniqueUsers);
+ return ret;
+ }
+ private List<String> getGroupList() {
+ List<String> ret = new ArrayList<>();
+
+ HashSet<String> uniqueGroups = new HashSet<String>();
+ String[] groups = RangerConfiguration.getInstance().getStrings("ranger.default.policy.groups");
+
+ if (groups != null) {
+ for (String group : groups) {
+ uniqueGroups.add(group);
+ }
+ }
+
+ Map<String, String> serviceConfig = service.getConfigs();
+ if (serviceConfig != null) {
+ String defaultGroups = serviceConfig.get("default.policy.groups");
+ if (!StringUtils.isEmpty(defaultGroups)) {
+ List<String> defaultGroupList = new ArrayList<>(Arrays.asList(StringUtils.split(defaultGroups, ",")));
+ if (!defaultGroupList.isEmpty()) {
+ uniqueGroups.addAll(defaultGroupList);
+ }
+ }
}
+ ret.addAll(uniqueGroups);
return ret;
}