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 f404418 RANGER-2516 : Update Ranger default policies to provide
entity-read access to public group
f404418 is described below
commit f404418a4b220fd0d34333c854e6edf88d061650
Author: Nikhil P <[email protected]>
AuthorDate: Tue Jul 30 12:16:58 2019 +0530
RANGER-2516 : Update Ranger default policies to provide entity-read access
to public group
---
.../ranger/services/atlas/RangerServiceAtlas.java | 51 +++++++++++++++++++++-
1 file changed, 49 insertions(+), 2 deletions(-)
diff --git
a/plugin-atlas/src/main/java/org/apache/ranger/services/atlas/RangerServiceAtlas.java
b/plugin-atlas/src/main/java/org/apache/ranger/services/atlas/RangerServiceAtlas.java
index 459e791..501a6b5 100644
---
a/plugin-atlas/src/main/java/org/apache/ranger/services/atlas/RangerServiceAtlas.java
+++
b/plugin-atlas/src/main/java/org/apache/ranger/services/atlas/RangerServiceAtlas.java
@@ -20,6 +20,7 @@ package org.apache.ranger.services.atlas;
import java.security.PrivilegedAction;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
@@ -70,11 +71,18 @@ public class RangerServiceAtlas extends RangerBaseService {
public static final String RESOURCE_END_TWO_ENTITY_TYPE =
"end-two-entity-type";
public static final String RESOURCE_END_TWO_ENTITY_CLASSIFICATION =
"end-two-entity-classification";
public static final String RESOURCE_END_TWO_ENTITY_ID =
"end-two-entity";
+ public static final String SEARCH_FEATURE_POLICY_NAME = "
Allow users to manage favorite searches";
public static final String ACCESS_TYPE_ENTITY_READ = "entity-read";
+ public static final String ACCESS_TYPE_ENTITY_CREATE = "entity-create";
+ public static final String ACCESS_TYPE_ENTITY_UPDATE = "entity-update";
+ public static final String ACCESS_TYPE_ENTITY_DELETE = "entity-delete";
public static final String ADMIN_USERNAME_DEFAULT = "admin";
public static final String TAGSYNC_USERNAME_DEFAULT = "rangertagsync";
-
+ public static final String ENTITY_TYPE_USER_PROFILE =
"__AtlasUserProfile";
+ public static final String ENTITY_TYPE_SAVED_SEARCH =
"__AtlasUserSavedSearch";
+ public static final String ENTITY_ID_USER_PROFILE =
RangerPolicyEngine.USER_CURRENT;
+ public static final String ENTITY_ID_USER_SAVED_SEARCH=
RangerPolicyEngine.USER_CURRENT + ":*";
public static final String CONFIG_REST_ADDRESS =
"atlas.rest.address";
@@ -162,6 +170,7 @@ public class RangerServiceAtlas extends RangerBaseService {
RangerPolicyItem policyItemForTagSyncUser = new
RangerPolicyItem();
policyItemForTagSyncUser.setUsers(Collections.singletonList(tagSyncUser));
+
policyItemForTagSyncUser.setGroups(Collections.singletonList(RangerPolicyEngine.GROUP_PUBLIC));
policyItemForTagSyncUser.setAccesses(Collections.singletonList(new
RangerPolicyItemAccess(ACCESS_TYPE_ENTITY_READ)));
defaultPolicy.getPolicyItems().add(policyItemForTagSyncUser);
@@ -175,8 +184,12 @@ public class RangerServiceAtlas extends RangerBaseService {
}
}
}
+
}
+ //4.add new policy for public group with entity-read, entity-create,
entity-update, entity-delete for __AtlasUserProfile, __AtlasUserSavedSearch
entity type
+ RangerPolicy searchFeaturePolicy = getSearchFeaturePolicy();
+ ret.add(searchFeaturePolicy);
if (LOG.isDebugEnabled()) {
LOG.debug("<== RangerServiceAtlas.getDefaultRangerPolicies()");
}
@@ -184,7 +197,41 @@ public class RangerServiceAtlas extends RangerBaseService {
return ret;
}
- private static class AtlasServiceClient extends BaseClient {
+ private RangerPolicy getSearchFeaturePolicy() {
+ RangerPolicy searchFeaturePolicy = new RangerPolicy();
+
+ searchFeaturePolicy.setName(SEARCH_FEATURE_POLICY_NAME);
+ searchFeaturePolicy.setService(serviceName);
+
searchFeaturePolicy.setResources(getSearchFeaturePolicyResource());
+
searchFeaturePolicy.setPolicyItems(getSearchFeaturePolicyItem());
+
+ return searchFeaturePolicy;
+ }
+
+ private List<RangerPolicyItem> getSearchFeaturePolicyItem() {
+ List<RangerPolicyItemAccess> accesses = new
ArrayList<RangerPolicyItemAccess>();
+
+ accesses.add(new
RangerPolicyItemAccess(ACCESS_TYPE_ENTITY_READ));
+ accesses.add(new
RangerPolicyItemAccess(ACCESS_TYPE_ENTITY_CREATE));
+ accesses.add(new
RangerPolicyItemAccess(ACCESS_TYPE_ENTITY_UPDATE));
+ accesses.add(new
RangerPolicyItemAccess(ACCESS_TYPE_ENTITY_DELETE));
+
+ RangerPolicyItem item = new RangerPolicyItem(accesses,
Arrays.asList(RangerPolicyEngine.USER_CURRENT), null, null, null, false);
+
+ return Collections.singletonList(item);
+ }
+
+ private Map<String, RangerPolicyResource>
getSearchFeaturePolicyResource() {
+ Map<String, RangerPolicyResource> resources = new HashMap<>();
+
+ resources.put(RESOURCE_ENTITY_TYPE, new
RangerPolicyResource(Arrays.asList(ENTITY_TYPE_USER_PROFILE,
ENTITY_TYPE_SAVED_SEARCH), false, false));
+ resources.put(RESOURCE_ENTITY_CLASSIFICATION, new
RangerPolicyResource("*"));
+ resources.put(RESOURCE_ENTITY_ID, new
RangerPolicyResource(Arrays.asList(ENTITY_ID_USER_PROFILE,
ENTITY_ID_USER_SAVED_SEARCH), false, false));
+
+ return resources;
+ }
+
+ private static class AtlasServiceClient extends BaseClient {
private static final String[] TYPE_CATEGORIES = new String[] {
"classification", "enum", "entity", "relationship", "struct" };
Map<String, List<String>> typesDef = new HashMap<>();