Repository: incubator-ranger Updated Branches: refs/heads/tag-policy ca8879858 -> 26778304f
RANGER-274: Changed class name from RangerResource to RangerTaggedResource. Signed-off-by: Madhan Neethiraj <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/26778304 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/26778304 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/26778304 Branch: refs/heads/tag-policy Commit: 26778304fcfff9cf3fe7e88bb46761c91ef1d7ae Parents: ca88798 Author: Abhay Kulkarni <[email protected]> Authored: Mon Jun 22 14:28:50 2015 -0700 Committer: Madhan Neethiraj <[email protected]> Committed: Fri Jun 26 15:46:43 2015 -0700 ---------------------------------------------------------------------- .../admin/client/RangerAdminRESTClient.java | 12 +- .../plugin/audit/RangerDefaultAuditHandler.java | 6 +- .../RangerScriptExecutionContext.java | 22 +- .../RangerAdminTagRetriever.java | 6 +- .../RangerFileBasedTagProvider.java | 6 +- .../RangerTagFileStoreRetriever.java | 6 +- .../contextenricher/RangerTagProvider.java | 18 +- .../contextenricher/RangerTagReceiver.java | 4 +- .../RangerTaggedResourceMatcher.java | 8 +- .../ranger/plugin/model/RangerResource.java | 204 ------------------- .../plugin/model/RangerTaggedResource.java | 204 +++++++++++++++++++ .../policyengine/RangerPolicyEngineImpl.java | 10 +- .../ranger/plugin/store/AbstractTagStore.java | 8 +- .../ranger/plugin/store/TagPredicateUtil.java | 14 +- .../apache/ranger/plugin/store/TagStore.java | 16 +- .../ranger/plugin/store/file/TagFileStore.java | 61 +++--- .../plugin/policyengine/TestPolicyEngine.java | 6 +- .../ranger/plugin/store/TestTagStore.java | 15 +- .../java/org/apache/ranger/rest/TagREST.java | 41 ++-- 19 files changed, 334 insertions(+), 333 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/26778304/agents-common/src/main/java/org/apache/ranger/admin/client/RangerAdminRESTClient.java ---------------------------------------------------------------------- diff --git a/agents-common/src/main/java/org/apache/ranger/admin/client/RangerAdminRESTClient.java b/agents-common/src/main/java/org/apache/ranger/admin/client/RangerAdminRESTClient.java index 59cb106..62f2c1c 100644 --- a/agents-common/src/main/java/org/apache/ranger/admin/client/RangerAdminRESTClient.java +++ b/agents-common/src/main/java/org/apache/ranger/admin/client/RangerAdminRESTClient.java @@ -30,7 +30,8 @@ import org.apache.commons.logging.LogFactory; import org.apache.hadoop.security.AccessControlException; import org.apache.ranger.admin.client.datatype.RESTResponse; import org.apache.ranger.authorization.hadoop.config.RangerConfiguration; -import org.apache.ranger.plugin.model.RangerResource; + +import org.apache.ranger.plugin.model.RangerTaggedResource; import org.apache.ranger.plugin.util.GrantRevokeRequest; import org.apache.ranger.plugin.util.RangerRESTClient; import org.apache.ranger.plugin.util.RangerRESTUtils; @@ -183,14 +184,15 @@ public class RangerAdminRESTClient implements RangerAdminClient { } } - public List<RangerResource> getTaggedResources(String componentType) throws Exception { + + public List<RangerTaggedResource> getTaggedResources(String componentType) throws Exception { if(LOG.isDebugEnabled()) { LOG.debug("==> RangerAdminRESTClient.getTaggedResources(" + serviceName + ", " + componentType + "): "); } ParameterizedType parameterizedGenericType = new ParameterizedType() { public Type[] getActualTypeArguments() { - return new Type[] { new RangerResource().getClass() }; + return new Type[] { new RangerTaggedResource().getClass() }; } public Type getRawType() { @@ -202,11 +204,11 @@ public class RangerAdminRESTClient implements RangerAdminClient { } }; - GenericType<List<RangerResource>> genericType = new GenericType<List<RangerResource>>( + GenericType<List<RangerTaggedResource>> genericType = new GenericType<List<RangerTaggedResource>>( parameterizedGenericType) { }; - List<RangerResource> ret; + List<RangerTaggedResource> ret; WebResource webResource = createWebResource(RangerRESTUtils.REST_URL_GET_TAGGED_RESOURCES) .queryParam(RangerRESTUtils.TAG_SERVICE_NAME_PARAM, serviceName) http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/26778304/agents-common/src/main/java/org/apache/ranger/plugin/audit/RangerDefaultAuditHandler.java ---------------------------------------------------------------------- diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/audit/RangerDefaultAuditHandler.java b/agents-common/src/main/java/org/apache/ranger/plugin/audit/RangerDefaultAuditHandler.java index b5df54c..85ba5c0 100644 --- a/agents-common/src/main/java/org/apache/ranger/plugin/audit/RangerDefaultAuditHandler.java +++ b/agents-common/src/main/java/org/apache/ranger/plugin/audit/RangerDefaultAuditHandler.java @@ -29,7 +29,7 @@ import org.apache.ranger.audit.provider.AuditProviderFactory; import org.apache.ranger.audit.provider.MiscUtil; import org.apache.ranger.authorization.hadoop.config.RangerConfiguration; import org.apache.ranger.authorization.hadoop.constants.RangerHadoopConstants; -import org.apache.ranger.plugin.model.RangerResource; +import org.apache.ranger.plugin.model.RangerTaggedResource; import org.apache.ranger.plugin.policyengine.*; @@ -209,10 +209,10 @@ public class RangerDefaultAuditHandler implements RangerAccessResultProcessor { if (contextObj != null) { @SuppressWarnings("unchecked") - List<RangerResource.RangerResourceTag> resourceTags = (List<RangerResource.RangerResourceTag>) contextObj; + List<RangerTaggedResource.RangerResourceTag> resourceTags = (List<RangerTaggedResource.RangerResourceTag>) contextObj; if (CollectionUtils.isNotEmpty(resourceTags)) { - for (RangerResource.RangerResourceTag resourceTag : resourceTags) { + for (RangerTaggedResource.RangerResourceTag resourceTag : resourceTags) { tags.add(resourceTag.getName()); } } http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/26778304/agents-common/src/main/java/org/apache/ranger/plugin/conditionevaluator/RangerScriptExecutionContext.java ---------------------------------------------------------------------- diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/conditionevaluator/RangerScriptExecutionContext.java b/agents-common/src/main/java/org/apache/ranger/plugin/conditionevaluator/RangerScriptExecutionContext.java index 815b4cc..803f4bf 100644 --- a/agents-common/src/main/java/org/apache/ranger/plugin/conditionevaluator/RangerScriptExecutionContext.java +++ b/agents-common/src/main/java/org/apache/ranger/plugin/conditionevaluator/RangerScriptExecutionContext.java @@ -23,7 +23,7 @@ import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.ranger.plugin.model.RangerResource; +import org.apache.ranger.plugin.model.RangerTaggedResource; import org.apache.ranger.plugin.policyengine.RangerAccessRequest; import org.apache.ranger.plugin.policyengine.RangerAccessResource; import org.apache.ranger.plugin.policyengine.RangerPolicyEngine; @@ -74,9 +74,9 @@ public final class RangerScriptExecutionContext { public final String getSessionId() { return accessRequest.getSessionId(); } - public final RangerResource.RangerResourceTag getCurrentTag() { + public final RangerTaggedResource.RangerResourceTag getCurrentTag() { @SuppressWarnings("unchecked") - RangerResource.RangerResourceTag tagObject = (RangerResource.RangerResourceTag)getEvaluationContext() + RangerTaggedResource.RangerResourceTag tagObject = (RangerTaggedResource.RangerResourceTag)getEvaluationContext() .get(RangerPolicyEngine.KEY_CONTEXT_TAG_OBJECT); if (tagObject == null) { if (LOG.isDebugEnabled()) { @@ -87,7 +87,7 @@ public final class RangerScriptExecutionContext { } public final String getCurrentTagName() { - RangerResource.RangerResourceTag tagObject = getCurrentTag(); + RangerTaggedResource.RangerResourceTag tagObject = getCurrentTag(); return (tagObject != null) ? tagObject.getName() : null; } @@ -95,11 +95,11 @@ public final class RangerScriptExecutionContext { Set<String> allTagNames = null; - List<RangerResource.RangerResourceTag> tagObjectList = getAllTags(); + List<RangerTaggedResource.RangerResourceTag> tagObjectList = getAllTags(); if (CollectionUtils.isNotEmpty(tagObjectList)) { - for (RangerResource.RangerResourceTag tag : tagObjectList) { + for (RangerTaggedResource.RangerResourceTag tag : tagObjectList) { String tagName = tag.getName(); if (allTagNames == null) { allTagNames = new HashSet<String>(); @@ -117,13 +117,13 @@ public final class RangerScriptExecutionContext { if (StringUtils.isNotBlank(tagName)) { - List<RangerResource.RangerResourceTag> tagObjectList = getAllTags(); + List<RangerTaggedResource.RangerResourceTag> tagObjectList = getAllTags(); // Assumption: There is exactly one tag with given tagName in the list of tags - may not be true ***TODO*** // This will get attributeValues of the first tagName that matches if (CollectionUtils.isNotEmpty(tagObjectList)) { - for (RangerResource.RangerResourceTag tag : tagObjectList) { + for (RangerTaggedResource.RangerResourceTag tag : tagObjectList) { if (tag.getName().equals(tagName)) { ret = tag.getAttributeValues(); break; @@ -169,7 +169,7 @@ public final class RangerScriptExecutionContext { String ret = null; if (StringUtils.isNotBlank(attributeName)) { - RangerResource.RangerResourceTag tag = getCurrentTag(); + RangerTaggedResource.RangerResourceTag tag = getCurrentTag(); Map<String, String> attributeValues = null; if (tag != null) { attributeValues = tag.getAttributeValues(); @@ -286,10 +286,10 @@ public final class RangerScriptExecutionContext { return ret; } - private List<RangerResource.RangerResourceTag> getAllTags() { + private List<RangerTaggedResource.RangerResourceTag> getAllTags() { @SuppressWarnings("unchecked") - List<RangerResource.RangerResourceTag> ret = (List<RangerResource.RangerResourceTag>)getEvaluationContext().get(RangerPolicyEngine.KEY_CONTEXT_TAGS); + List<RangerTaggedResource.RangerResourceTag> ret = (List<RangerTaggedResource.RangerResourceTag>)getEvaluationContext().get(RangerPolicyEngine.KEY_CONTEXT_TAGS); if (ret == null) { if (LOG.isDebugEnabled()) { http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/26778304/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerAdminTagRetriever.java ---------------------------------------------------------------------- diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerAdminTagRetriever.java b/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerAdminTagRetriever.java index 4ffe746..c6fc852 100644 --- a/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerAdminTagRetriever.java +++ b/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerAdminTagRetriever.java @@ -23,7 +23,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.ranger.admin.client.RangerAdminRESTClient; import org.apache.ranger.authorization.hadoop.config.RangerConfiguration; -import org.apache.ranger.plugin.model.RangerResource; +import org.apache.ranger.plugin.model.RangerTaggedResource; import java.util.HashMap; import java.util.List; @@ -73,7 +73,7 @@ public class RangerAdminTagRetriever extends RangerTagRefresher { @Override public void retrieveTags() { if (rangerAdminRESTClient != null) { - List<RangerResource> resources = null; + List<RangerTaggedResource> resources = null; try { resources = rangerAdminRESTClient.getTaggedResources(componentType); @@ -82,7 +82,7 @@ public class RangerAdminTagRetriever extends RangerTagRefresher { } if (receiver != null && resources != null) { - receiver.setRangerResources(resources); + receiver.setRangerTaggedResources(resources); } else { LOG.error("RangerAdminTagRetriever.retrieveTags() - No receiver to send resources to !!"); } http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/26778304/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerFileBasedTagProvider.java ---------------------------------------------------------------------- diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerFileBasedTagProvider.java b/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerFileBasedTagProvider.java index 97c82dd..8f3a72f 100644 --- a/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerFileBasedTagProvider.java +++ b/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerFileBasedTagProvider.java @@ -30,7 +30,7 @@ import com.google.gson.reflect.TypeToken; import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.ranger.plugin.model.RangerResource; +import org.apache.ranger.plugin.model.RangerTaggedResource; import org.apache.ranger.plugin.policyengine.RangerAccessRequest; import org.apache.ranger.plugin.policyengine.RangerPolicyEngine; @@ -88,9 +88,9 @@ public class RangerFileBasedTagProvider extends RangerAbstractContextEnricher { if(!StringUtils.isEmpty(tagsJsonString) && context != null) { try { - Type listType = new TypeToken<List<RangerResource.RangerResourceTag>>() { + Type listType = new TypeToken<List<RangerTaggedResource.RangerResourceTag>>() { }.getType(); - List<RangerResource.RangerResourceTag> tagList = gsonBuilder.fromJson(tagsJsonString, listType); + List<RangerTaggedResource.RangerResourceTag> tagList = gsonBuilder.fromJson(tagsJsonString, listType); context.put(RangerPolicyEngine.KEY_CONTEXT_TAGS, tagList); } catch (Exception e) { http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/26778304/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerTagFileStoreRetriever.java ---------------------------------------------------------------------- diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerTagFileStoreRetriever.java b/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerTagFileStoreRetriever.java index c5a5828..fece433 100644 --- a/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerTagFileStoreRetriever.java +++ b/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerTagFileStoreRetriever.java @@ -21,7 +21,7 @@ package org.apache.ranger.plugin.contextenricher; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.ranger.plugin.model.RangerResource; +import org.apache.ranger.plugin.model.RangerTaggedResource; import org.apache.ranger.plugin.store.file.TagFileStore; import java.util.List; @@ -55,7 +55,7 @@ public class RangerTagFileStoreRetriever extends RangerTagRefresher { @Override public void retrieveTags() { if (tagFileStore != null) { - List<RangerResource> resources = null; + List<RangerTaggedResource> resources = null; try { resources = tagFileStore.getResources(tagServiceName, componentType); @@ -64,7 +64,7 @@ public class RangerTagFileStoreRetriever extends RangerTagRefresher { } if (receiver != null) { - receiver.setRangerResources(resources); + receiver.setRangerTaggedResources(resources); } else { LOG.error("RangerTagFileStoreRetriever.retrieveTags() - No receiver to send resources to !!"); } http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/26778304/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerTagProvider.java ---------------------------------------------------------------------- diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerTagProvider.java b/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerTagProvider.java index 993cdfb..8896e6e 100644 --- a/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerTagProvider.java +++ b/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerTagProvider.java @@ -23,7 +23,7 @@ import org.apache.commons.collections.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.ranger.plugin.model.RangerPolicy; -import org.apache.ranger.plugin.model.RangerResource; +import org.apache.ranger.plugin.model.RangerTaggedResource; import org.apache.ranger.plugin.policyengine.RangerAccessRequest; import org.apache.ranger.plugin.policyengine.RangerAccessResource; import org.apache.ranger.plugin.policyengine.RangerPolicyEngine; @@ -91,7 +91,7 @@ public class RangerTagProvider extends RangerAbstractContextEnricher implements List<RangerTaggedResourceMatcher> taggedResourceMatchersCopy = taggedResourceMatchers; - List<RangerResource.RangerResourceTag> matchedTags = findMatchingTags(request.getResource(), taggedResourceMatchersCopy); + List<RangerTaggedResource.RangerResourceTag> matchedTags = findMatchingTags(request.getResource(), taggedResourceMatchersCopy); if (CollectionUtils.isNotEmpty(matchedTags)) { request.getContext().put(RangerPolicyEngine.KEY_CONTEXT_TAGS, matchedTags); @@ -110,20 +110,20 @@ public class RangerTagProvider extends RangerAbstractContextEnricher implements } @Override - public void setRangerResources(final List<RangerResource> resources) { + public void setRangerTaggedResources(final List<RangerTaggedResource> resources) { List<RangerTaggedResourceMatcher> resourceMatchers = new ArrayList<RangerTaggedResourceMatcher>(); if (CollectionUtils.isNotEmpty(resources)) { - for (RangerResource taggedResource : resources) { + for (RangerTaggedResource taggedResource : resources) { RangerDefaultPolicyResourceMatcher matcher = new RangerDefaultPolicyResourceMatcher(); matcher.setServiceDef(this.serviceDef); matcher.setPolicyResources(taggedResource.getResourceSpec()); if (LOG.isDebugEnabled()) { - LOG.debug("RangerTagProvider.setRangerResources() - Initializing matcher with (resource=" + taggedResource + LOG.debug("RangerTagProvider.setRangerTaggedResources() - Initializing matcher with (resource=" + taggedResource + ", serviceDef=" + this.serviceDef.getName() + ")" ); } @@ -142,25 +142,25 @@ public class RangerTagProvider extends RangerAbstractContextEnricher implements } } - static private List<RangerResource.RangerResourceTag> findMatchingTags(final RangerAccessResource resource, final List<RangerTaggedResourceMatcher> resourceMatchers) { + static private List<RangerTaggedResource.RangerResourceTag> findMatchingTags(final RangerAccessResource resource, final List<RangerTaggedResourceMatcher> resourceMatchers) { if (LOG.isDebugEnabled()) { LOG.debug("==> RangerTagProvider.findMatchingTags(" + resource + ")"); } - List<RangerResource.RangerResourceTag> ret = null; + List<RangerTaggedResource.RangerResourceTag> ret = null; if (CollectionUtils.isNotEmpty(resourceMatchers)) { for (RangerTaggedResourceMatcher resourceMatcher : resourceMatchers) { - RangerResource taggedResource = resourceMatcher.getRangerResource(); + RangerTaggedResource taggedResource = resourceMatcher.getRangerTaggedResource(); RangerPolicyResourceMatcher matcher = resourceMatcher.getPolicyResourceMatcher(); boolean matchResult = matcher.isExactHeadMatch(resource); if (matchResult) { if (ret == null) { - ret = new ArrayList<RangerResource.RangerResourceTag>(); + ret = new ArrayList<RangerTaggedResource.RangerResourceTag>(); } ret.addAll(taggedResource.getTags()); } http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/26778304/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerTagReceiver.java ---------------------------------------------------------------------- diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerTagReceiver.java b/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerTagReceiver.java index 6a3bb07..e162f33 100644 --- a/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerTagReceiver.java +++ b/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerTagReceiver.java @@ -19,10 +19,10 @@ package org.apache.ranger.plugin.contextenricher; -import org.apache.ranger.plugin.model.RangerResource; +import org.apache.ranger.plugin.model.RangerTaggedResource; import java.util.List; public interface RangerTagReceiver { - void setRangerResources(final List<RangerResource> resources); + void setRangerTaggedResources(final List<RangerTaggedResource> resources); } http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/26778304/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerTaggedResourceMatcher.java ---------------------------------------------------------------------- diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerTaggedResourceMatcher.java b/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerTaggedResourceMatcher.java index de41106..dee2915 100644 --- a/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerTaggedResourceMatcher.java +++ b/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerTaggedResourceMatcher.java @@ -19,19 +19,19 @@ package org.apache.ranger.plugin.contextenricher; -import org.apache.ranger.plugin.model.RangerResource; +import org.apache.ranger.plugin.model.RangerTaggedResource; import org.apache.ranger.plugin.policyresourcematcher.RangerPolicyResourceMatcher; public class RangerTaggedResourceMatcher { - private final RangerResource rangerResource; + private final RangerTaggedResource rangerResource; private final RangerPolicyResourceMatcher policyResourceMatcher; - public RangerTaggedResourceMatcher(final RangerResource rangerResource, RangerPolicyResourceMatcher policyResourceMatcher) { + public RangerTaggedResourceMatcher(final RangerTaggedResource rangerResource, RangerPolicyResourceMatcher policyResourceMatcher) { this.rangerResource = rangerResource; this.policyResourceMatcher = policyResourceMatcher; } - public RangerResource getRangerResource() { return rangerResource; } + public RangerTaggedResource getRangerTaggedResource() { return rangerResource; } public RangerPolicyResourceMatcher getPolicyResourceMatcher() { return policyResourceMatcher; } http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/26778304/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerResource.java ---------------------------------------------------------------------- diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerResource.java b/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerResource.java deleted file mode 100644 index 39cca85..0000000 --- a/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerResource.java +++ /dev/null @@ -1,204 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.ranger.plugin.model; - -import org.codehaus.jackson.annotate.JsonAutoDetect; -import org.codehaus.jackson.annotate.JsonIgnoreProperties; -import org.codehaus.jackson.map.annotate.JsonSerialize; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlRootElement; -import java.util.*; - -/** - * This class represents a RangerResource including the service-type (such as hdfs, hive, etc.) in which it is supported. - * This implies that there is one-to-one mapping between service-type and the resource-type which is a valid assumption. - * Service-type must be one of service-types supported by Ranger. - * - * This class also contains a list of (tag-name, JSON-string-representing-tagattribute-tagattributevalue-pairs) - * - */ - -@JsonAutoDetect(getterVisibility= JsonAutoDetect.Visibility.NONE, setterVisibility= JsonAutoDetect.Visibility.NONE, fieldVisibility= JsonAutoDetect.Visibility.ANY) -@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL ) -@JsonIgnoreProperties(ignoreUnknown=true) -@XmlRootElement -@XmlAccessorType(XmlAccessType.FIELD) - -public class RangerResource extends RangerBaseModelObject { - private static final long serialVersionUID = 1L; - - private String componentType = null; // one of any supported by any component - private String tagServiceName = null; - private Map<String, RangerPolicy.RangerPolicyResource> resourceSpec = null; - private List<RangerResourceTag> tags = null; - - public RangerResource(String componentType, String tagServiceName, Map<String, RangerPolicy.RangerPolicyResource> resourceSpec, List<RangerResourceTag> tags) { - super(); - setComponentType(componentType); - setTagServiceName(tagServiceName); - setResourceSpec(resourceSpec); - setTags(tags); - } - - public RangerResource() { - this(null, null, null, null); - } - - public String getComponentType() { - return componentType; - } - - public String getTagServiceName() { - return tagServiceName; - } - - public Map<String, RangerPolicy.RangerPolicyResource> getResourceSpec() { - return resourceSpec; - } - - public List<RangerResourceTag> getTags() { - return tags; - } - - // And corresponding set methods - public void setComponentType(String componentType) { - this.componentType = componentType; - } - - public void setTagServiceName(String tagServiceName) { - this.tagServiceName = tagServiceName; - } - - public void setResourceSpec(Map<String, RangerPolicy.RangerPolicyResource> resourceSpec) { - this.resourceSpec = resourceSpec == null ? new HashMap<String, RangerPolicy.RangerPolicyResource>() : resourceSpec; - } - - public void setTags(List<RangerResourceTag> tags) { - this.tags = tags == null ? new ArrayList<RangerResourceTag>() : tags; - } - - @Override - public String toString( ) { - StringBuilder sb = new StringBuilder(); - - toString(sb); - - return sb.toString(); - } - - public StringBuilder toString(StringBuilder sb) { - - sb.append("{ "); - - sb.append("componentType={").append(componentType).append("} "); - sb.append("tagServiceName={").append(tagServiceName).append("} "); - - sb.append("RangerResource={"); - if(resourceSpec != null) { - for(Map.Entry<String, RangerPolicy.RangerPolicyResource> e : resourceSpec.entrySet()) { - sb.append(e.getKey()).append("={"); - e.getValue().toString(sb); - sb.append("} "); - } - } - sb.append("} "); - - sb.append("Tags={"); - if (tags != null) { - for (RangerResourceTag tag : tags) { - sb.append("{"); - tag.toString(sb); - sb.append("} "); - } - } - sb.append("} "); - - sb.append(" }"); - - return sb; - } - /** - * Represents a tag and its attribute-values for a resource. - */ - - @JsonAutoDetect(getterVisibility= JsonAutoDetect.Visibility.NONE, setterVisibility= JsonAutoDetect.Visibility.NONE, fieldVisibility= JsonAutoDetect.Visibility.ANY) - @JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL ) - @JsonIgnoreProperties(ignoreUnknown=true) - @XmlRootElement - @XmlAccessorType(XmlAccessType.FIELD) - - public static class RangerResourceTag implements java.io.Serializable { - - private String name = null; - private Map<String, String> attributeValues = null; - - public RangerResourceTag(String name, Map<String, String> attributeValues) { - super(); - setName(name); - setAttributeValues(attributeValues); - } - - public RangerResourceTag() { - this(null, null); - } - - public String getName() { - return name; - } - public void setName(String name) { this.name = name; } - - public Map<String, String> getAttributeValues() { - return attributeValues; - } - public void setAttributeValues(Map<String, String> attributeValues) { this.attributeValues = attributeValues; } - - @Override - public String toString( ) { - StringBuilder sb = new StringBuilder(); - - toString(sb); - - return sb.toString(); - } - - public StringBuilder toString(StringBuilder sb) { - - sb.append("{ "); - - sb.append("name={").append(name).append("} "); - - sb.append("attributeValues={"); - if(attributeValues != null) { - for(Map.Entry<String, String> e : attributeValues.entrySet()) { - sb.append(e.getKey()).append("={"); - sb.append(e.getValue()); - sb.append("} "); - } - } - sb.append("} "); - - sb.append(" }"); - - return sb; - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/26778304/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerTaggedResource.java ---------------------------------------------------------------------- diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerTaggedResource.java b/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerTaggedResource.java new file mode 100644 index 0000000..b532ca5 --- /dev/null +++ b/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerTaggedResource.java @@ -0,0 +1,204 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.ranger.plugin.model; + +import org.codehaus.jackson.annotate.JsonAutoDetect; +import org.codehaus.jackson.annotate.JsonIgnoreProperties; +import org.codehaus.jackson.map.annotate.JsonSerialize; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlRootElement; +import java.util.*; + +/** + * This class represents a RangerTaggedResource including the service-type (such as hdfs, hive, etc.) in which it is supported. + * This implies that there is one-to-one mapping between service-type and the resource-type which is a valid assumption. + * Service-type must be one of service-types supported by Ranger. + * + * This class also contains a list of (tag-name, JSON-string-representing-tagattribute-tagattributevalue-pairs) + * + */ + +@JsonAutoDetect(getterVisibility= JsonAutoDetect.Visibility.NONE, setterVisibility= JsonAutoDetect.Visibility.NONE, fieldVisibility= JsonAutoDetect.Visibility.ANY) +@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL ) +@JsonIgnoreProperties(ignoreUnknown=true) +@XmlRootElement +@XmlAccessorType(XmlAccessType.FIELD) + +public class RangerTaggedResource extends RangerBaseModelObject { + private static final long serialVersionUID = 1L; + + private String componentType = null; // one of any supported by any component + private String tagServiceName = null; + private Map<String, RangerPolicy.RangerPolicyResource> resourceSpec = null; + private List<RangerResourceTag> tags = null; + + public RangerTaggedResource(String componentType, String tagServiceName, Map<String, RangerPolicy.RangerPolicyResource> resourceSpec, List<RangerResourceTag> tags) { + super(); + setComponentType(componentType); + setTagServiceName(tagServiceName); + setResourceSpec(resourceSpec); + setTags(tags); + } + + public RangerTaggedResource() { + this(null, null, null, null); + } + + public String getComponentType() { + return componentType; + } + + public String getTagServiceName() { + return tagServiceName; + } + + public Map<String, RangerPolicy.RangerPolicyResource> getResourceSpec() { + return resourceSpec; + } + + public List<RangerResourceTag> getTags() { + return tags; + } + + // And corresponding set methods + public void setComponentType(String componentType) { + this.componentType = componentType; + } + + public void setTagServiceName(String tagServiceName) { + this.tagServiceName = tagServiceName; + } + + public void setResourceSpec(Map<String, RangerPolicy.RangerPolicyResource> resourceSpec) { + this.resourceSpec = resourceSpec == null ? new HashMap<String, RangerPolicy.RangerPolicyResource>() : resourceSpec; + } + + public void setTags(List<RangerResourceTag> tags) { + this.tags = tags == null ? new ArrayList<RangerResourceTag>() : tags; + } + + @Override + public String toString( ) { + StringBuilder sb = new StringBuilder(); + + toString(sb); + + return sb.toString(); + } + + public StringBuilder toString(StringBuilder sb) { + + sb.append("{ "); + + sb.append("componentType={").append(componentType).append("} "); + sb.append("tagServiceName={").append(tagServiceName).append("} "); + + sb.append("RangerTaggedResource={"); + if(resourceSpec != null) { + for(Map.Entry<String, RangerPolicy.RangerPolicyResource> e : resourceSpec.entrySet()) { + sb.append(e.getKey()).append("={"); + e.getValue().toString(sb); + sb.append("} "); + } + } + sb.append("} "); + + sb.append("Tags={"); + if (tags != null) { + for (RangerResourceTag tag : tags) { + sb.append("{"); + tag.toString(sb); + sb.append("} "); + } + } + sb.append("} "); + + sb.append(" }"); + + return sb; + } + /** + * Represents a tag and its attribute-values for a resource. + */ + + @JsonAutoDetect(getterVisibility= JsonAutoDetect.Visibility.NONE, setterVisibility= JsonAutoDetect.Visibility.NONE, fieldVisibility= JsonAutoDetect.Visibility.ANY) + @JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL ) + @JsonIgnoreProperties(ignoreUnknown=true) + @XmlRootElement + @XmlAccessorType(XmlAccessType.FIELD) + + public static class RangerResourceTag implements java.io.Serializable { + + private String name = null; + private Map<String, String> attributeValues = null; + + public RangerResourceTag(String name, Map<String, String> attributeValues) { + super(); + setName(name); + setAttributeValues(attributeValues); + } + + public RangerResourceTag() { + this(null, null); + } + + public String getName() { + return name; + } + public void setName(String name) { this.name = name; } + + public Map<String, String> getAttributeValues() { + return attributeValues; + } + public void setAttributeValues(Map<String, String> attributeValues) { this.attributeValues = attributeValues; } + + @Override + public String toString( ) { + StringBuilder sb = new StringBuilder(); + + toString(sb); + + return sb.toString(); + } + + public StringBuilder toString(StringBuilder sb) { + + sb.append("{ "); + + sb.append("name={").append(name).append("} "); + + sb.append("attributeValues={"); + if(attributeValues != null) { + for(Map.Entry<String, String> e : attributeValues.entrySet()) { + sb.append(e.getKey()).append("={"); + sb.append(e.getValue()); + sb.append("} "); + } + } + sb.append("} "); + + sb.append(" }"); + + return sb; + } + } +} http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/26778304/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerPolicyEngineImpl.java ---------------------------------------------------------------------- diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerPolicyEngineImpl.java b/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerPolicyEngineImpl.java index 30eb135..c72e313 100644 --- a/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerPolicyEngineImpl.java +++ b/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerPolicyEngineImpl.java @@ -25,7 +25,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.ranger.plugin.contextenricher.RangerContextEnricher; import org.apache.ranger.plugin.model.RangerPolicy; -import org.apache.ranger.plugin.model.RangerResource; +import org.apache.ranger.plugin.model.RangerTaggedResource; import org.apache.ranger.plugin.model.RangerServiceDef; import org.apache.ranger.plugin.model.RangerPolicy.RangerPolicyResource; import org.apache.ranger.plugin.policyevaluator.RangerPolicyEvaluator; @@ -376,7 +376,7 @@ public class RangerPolicyEngineImpl implements RangerPolicyEngine { if (context != null && (contextObj = context.get(KEY_CONTEXT_TAGS)) != null) { @SuppressWarnings("unchecked") - List<RangerResource.RangerResourceTag> resourceTags = (List<RangerResource.RangerResourceTag>) contextObj; + List<RangerTaggedResource.RangerResourceTag> resourceTags = (List<RangerTaggedResource.RangerResourceTag>) contextObj; List<RangerPolicyEvaluator> evaluators; @@ -388,7 +388,7 @@ public class RangerPolicyEngineImpl implements RangerPolicyEngine { List<RangerTagAuditEvent> tagAuditEvents = new ArrayList<RangerTagAuditEvent>(); - for (RangerResource.RangerResourceTag resourceTag : resourceTags) { + for (RangerTaggedResource.RangerResourceTag resourceTag : resourceTags) { if (LOG.isDebugEnabled()) { LOG.debug("RangerPolicyEngineImpl.isAccessAllowedForTagPolicies: Evaluating policies for tag (" + resourceTag.getName() + ")"); @@ -467,7 +467,7 @@ public class RangerPolicyEngineImpl implements RangerPolicyEngine { RangerMutableResource mutable = (RangerMutableResource) resource; mutable.setServiceDef(getServiceDef()); } else { - LOG.debug("RangerPolicyEngineImpl.setResourceServiceDef(): Cannot set ServiceDef in RangerResource."); + LOG.debug("RangerPolicyEngineImpl.setResourceServiceDef(): Cannot set ServiceDef in RangerTaggedResource."); } } } @@ -503,7 +503,7 @@ class RangerTagResource extends RangerAccessResourceImpl { } class RangerTagAccessRequest extends RangerAccessRequestImpl { - public RangerTagAccessRequest(RangerResource.RangerResourceTag resourceTag, RangerServiceDef tagServiceDef, RangerAccessRequest request) { + public RangerTagAccessRequest(RangerTaggedResource.RangerResourceTag resourceTag, RangerServiceDef tagServiceDef, RangerAccessRequest request) { super.setResource(new RangerTagResource(resourceTag.getName(), tagServiceDef)); super.setUser(request.getUser()); super.setUserGroups(request.getUserGroups()); http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/26778304/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractTagStore.java ---------------------------------------------------------------------- diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractTagStore.java b/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractTagStore.java index 97b3b1f..0f29c25 100644 --- a/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractTagStore.java +++ b/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractTagStore.java @@ -20,7 +20,7 @@ package org.apache.ranger.plugin.store; import org.apache.ranger.plugin.model.RangerBaseModelObject; -import org.apache.ranger.plugin.model.RangerResource; +import org.apache.ranger.plugin.model.RangerTaggedResource; import org.apache.ranger.plugin.model.RangerTagDef; import org.apache.ranger.plugin.util.SearchFilter; @@ -114,10 +114,10 @@ public abstract class AbstractTagStore implements TagStore { (long)list.size(), list.size(), filter.getSortType(), filter.getSortBy()); } - public PList<RangerResource> getPaginatedResources(SearchFilter filter) throws Exception { - List<RangerResource> list = getResources(filter); + public PList<RangerTaggedResource> getPaginatedResources(SearchFilter filter) throws Exception { + List<RangerTaggedResource> list = getResources(filter); - return new PList<RangerResource>(list, 0, list.size(), + return new PList<RangerTaggedResource>(list, 0, list.size(), (long)list.size(), list.size(), filter.getSortType(), filter.getSortBy()); } http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/26778304/agents-common/src/main/java/org/apache/ranger/plugin/store/TagPredicateUtil.java ---------------------------------------------------------------------- diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/store/TagPredicateUtil.java b/agents-common/src/main/java/org/apache/ranger/plugin/store/TagPredicateUtil.java index f62414f..8347f7f 100644 --- a/agents-common/src/main/java/org/apache/ranger/plugin/store/TagPredicateUtil.java +++ b/agents-common/src/main/java/org/apache/ranger/plugin/store/TagPredicateUtil.java @@ -24,7 +24,7 @@ import org.apache.commons.collections.Predicate; import org.apache.commons.collections.PredicateUtils; import org.apache.commons.lang.StringUtils; import org.apache.ranger.plugin.model.RangerBaseModelObject; -import org.apache.ranger.plugin.model.RangerResource; +import org.apache.ranger.plugin.model.RangerTaggedResource; import org.apache.ranger.plugin.model.RangerTagDef; import org.apache.ranger.plugin.util.SearchFilter; @@ -127,8 +127,8 @@ public class TagPredicateUtil extends AbstractPredicateUtil { return ret; } - if (object instanceof RangerResource) { - RangerResource rangerResource = (RangerResource) object; + if (object instanceof RangerTaggedResource) { + RangerTaggedResource rangerResource = (RangerTaggedResource) object; ret = StringUtils.equals(name, rangerResource.getTagServiceName()); } @@ -159,8 +159,8 @@ public class TagPredicateUtil extends AbstractPredicateUtil { return ret; } - if (object instanceof RangerResource) { - RangerResource rangerResource = (RangerResource) object; + if (object instanceof RangerTaggedResource) { + RangerTaggedResource rangerResource = (RangerTaggedResource) object; ret = StringUtils.equals(type, rangerResource.getComponentType()); } @@ -190,8 +190,8 @@ public class TagPredicateUtil extends AbstractPredicateUtil { return ret; } - if (object instanceof RangerResource) { - RangerResource rangerResource = (RangerResource) object; + if (object instanceof RangerTaggedResource) { + RangerTaggedResource rangerResource = (RangerTaggedResource) object; ret = StringUtils.equals(id, rangerResource.getId().toString()); } http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/26778304/agents-common/src/main/java/org/apache/ranger/plugin/store/TagStore.java ---------------------------------------------------------------------- diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/store/TagStore.java b/agents-common/src/main/java/org/apache/ranger/plugin/store/TagStore.java index 599da3f..a0b14db 100644 --- a/agents-common/src/main/java/org/apache/ranger/plugin/store/TagStore.java +++ b/agents-common/src/main/java/org/apache/ranger/plugin/store/TagStore.java @@ -20,7 +20,7 @@ package org.apache.ranger.plugin.store; import org.apache.ranger.plugin.model.RangerPolicy; -import org.apache.ranger.plugin.model.RangerResource; +import org.apache.ranger.plugin.model.RangerTaggedResource; import org.apache.ranger.plugin.model.RangerTagDef; import org.apache.ranger.plugin.util.SearchFilter; @@ -51,21 +51,21 @@ public interface TagStore { PList<RangerTagDef> getPaginatedTagDefs(SearchFilter filter) throws Exception; - RangerResource createResource(RangerResource resource) throws Exception; + RangerTaggedResource createResource(RangerTaggedResource resource) throws Exception; - RangerResource updateResource(RangerResource resource) throws Exception; + RangerTaggedResource updateResource(RangerTaggedResource resource) throws Exception; void deleteResource(Long id) throws Exception; - RangerResource getResource(Long id) throws Exception; + RangerTaggedResource getResource(Long id) throws Exception; - public List<RangerResource> getResources(String componentType, Map<String, RangerPolicy.RangerPolicyResource> resourceSpec) throws Exception; + public List<RangerTaggedResource> getResources(String componentType, Map<String, RangerPolicy.RangerPolicyResource> resourceSpec) throws Exception; - List<RangerResource> getResources(String tagServiceName, String componentType) throws Exception; + List<RangerTaggedResource> getResources(String tagServiceName, String componentType) throws Exception; - List<RangerResource> getResources(SearchFilter filter) throws Exception; + List<RangerTaggedResource> getResources(SearchFilter filter) throws Exception; - PList<RangerResource> getPaginatedResources(SearchFilter filter) throws Exception; + PList<RangerTaggedResource> getPaginatedResources(SearchFilter filter) throws Exception; Set<String> getTags(String tagServiceName, String serviceType) throws Exception; http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/26778304/agents-common/src/main/java/org/apache/ranger/plugin/store/file/TagFileStore.java ---------------------------------------------------------------------- diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/store/file/TagFileStore.java b/agents-common/src/main/java/org/apache/ranger/plugin/store/file/TagFileStore.java index 35833a3..d7de976 100644 --- a/agents-common/src/main/java/org/apache/ranger/plugin/store/file/TagFileStore.java +++ b/agents-common/src/main/java/org/apache/ranger/plugin/store/file/TagFileStore.java @@ -28,7 +28,7 @@ import org.apache.commons.logging.LogFactory; import org.apache.hadoop.fs.Path; import org.apache.ranger.authorization.hadoop.config.RangerConfiguration; import org.apache.ranger.plugin.model.RangerPolicy; -import org.apache.ranger.plugin.model.RangerResource; +import org.apache.ranger.plugin.model.RangerTaggedResource; import org.apache.ranger.plugin.model.RangerServiceDef; import org.apache.ranger.plugin.model.RangerTagDef; import org.apache.ranger.plugin.policyresourcematcher.RangerDefaultPolicyResourceMatcher; @@ -290,12 +290,12 @@ public class TagFileStore extends AbstractTagStore { } @Override - public RangerResource createResource(RangerResource resource) throws Exception { + public RangerTaggedResource createResource(RangerTaggedResource resource) throws Exception { if (LOG.isDebugEnabled()) { LOG.debug("==> TagFileStore.createResource(" + resource + ")"); } - RangerResource existing = null; + RangerTaggedResource existing = null; if (resource.getId() != null) { existing = getResource(resource.getId()); } @@ -304,13 +304,13 @@ public class TagFileStore extends AbstractTagStore { throw new Exception(resource.getId() + ": resource already exists (id=" + existing.getId() + ")"); } - List<RangerResource> existingResources = getResources(resource.getComponentType(), resource.getResourceSpec()); + List<RangerTaggedResource> existingResources = getResources(resource.getComponentType(), resource.getResourceSpec()); if (CollectionUtils.isNotEmpty(existingResources)) { throw new Exception("resource(s) with same specification already exists"); } - RangerResource ret; + RangerTaggedResource ret; try { preCreate(resource); @@ -334,17 +334,17 @@ public class TagFileStore extends AbstractTagStore { } @Override - public RangerResource updateResource(RangerResource resource) throws Exception { + public RangerTaggedResource updateResource(RangerTaggedResource resource) throws Exception { if (LOG.isDebugEnabled()) { LOG.debug("==> TagFileStore.updateResource(" + resource + ")"); } - RangerResource existing = getResource(resource.getId()); + RangerTaggedResource existing = getResource(resource.getId()); if (existing == null) { throw new Exception(resource.getId() + ": resource does not exist (id=" + resource.getId() + ")"); } - RangerResource ret; + RangerTaggedResource ret; try { preUpdate(existing); @@ -376,7 +376,7 @@ public class TagFileStore extends AbstractTagStore { LOG.debug("==> TagFileStore.deleteResource(" + id + ")"); } - RangerResource existing = getResource(id); + RangerTaggedResource existing = getResource(id); if (existing == null) { throw new Exception("no resource exists with ID=" + id); @@ -400,16 +400,16 @@ public class TagFileStore extends AbstractTagStore { } @Override - public RangerResource getResource(Long id) throws Exception { + public RangerTaggedResource getResource(Long id) throws Exception { if (LOG.isDebugEnabled()) { LOG.debug("==> TagFileStore.getResource(" + id + ")"); } - RangerResource ret; + RangerTaggedResource ret; if (id != null) { SearchFilter filter = new SearchFilter(SearchFilter.TAG_RESOURCE_ID, id.toString()); - List<RangerResource> resources = getResources(filter); + List<RangerTaggedResource> resources = getResources(filter); ret = CollectionUtils.isEmpty(resources) ? null : resources.get(0); } else { @@ -422,7 +422,7 @@ public class TagFileStore extends AbstractTagStore { } @Override - public List<RangerResource> getResources(String componentType, Map<String, RangerPolicy.RangerPolicyResource> resourceSpec) throws Exception { + public List<RangerTaggedResource> getResources(String componentType, Map<String, RangerPolicy.RangerPolicyResource> resourceSpec) throws Exception { if (LOG.isDebugEnabled()) { LOG.debug("==> TagFileStore.getResources( " + componentType + " )"); } @@ -432,7 +432,7 @@ public class TagFileStore extends AbstractTagStore { throw new Exception("TagFileStore.getResources() - TagFileStore object does not have reference to a valid ServiceStore."); } - List<RangerResource> ret = null; + List<RangerTaggedResource> ret = null; RangerServiceDef serviceDef = null; try { @@ -445,10 +445,11 @@ public class TagFileStore extends AbstractTagStore { if (MapUtils.isNotEmpty(resourceSpec)) { ret = getResources(null, componentType); - List<RangerResource> notMatchedResources = new ArrayList<>(); + + List<RangerTaggedResource> notMatchedResources = new ArrayList<>(); if (CollectionUtils.isNotEmpty(ret)) { - for (RangerResource resource : ret) { + for (RangerTaggedResource resource : ret) { RangerDefaultPolicyResourceMatcher policyResourceMatcher = new RangerDefaultPolicyResourceMatcher(); @@ -480,11 +481,11 @@ public class TagFileStore extends AbstractTagStore { } @Override - public List<RangerResource> getResources(String tagServiceName, String componentType) throws Exception { + public List<RangerTaggedResource> getResources(String tagServiceName, String componentType) throws Exception { if (LOG.isDebugEnabled()) { LOG.debug("==> TagFileStore.getResources(" + tagServiceName + ", " + componentType + ")"); } - List<RangerResource> ret; + List<RangerTaggedResource> ret; SearchFilter filter = new SearchFilter(); @@ -506,12 +507,12 @@ public class TagFileStore extends AbstractTagStore { } @Override - public List<RangerResource> getResources(SearchFilter filter) throws Exception { + public List<RangerTaggedResource> getResources(SearchFilter filter) throws Exception { if (LOG.isDebugEnabled()) { LOG.debug("==> TagFileStore.getResources()"); } - List<RangerResource> ret = getAllTaggedResources(); + List<RangerTaggedResource> ret = getAllTaggedResources(); if (CollectionUtils.isNotEmpty(ret) && filter != null && !filter.isEmpty()) { CollectionUtils.filter(ret, predicateUtil.getPredicate(filter)); @@ -576,23 +577,23 @@ public class TagFileStore extends AbstractTagStore { return ret; } - private List<RangerResource> getAllTaggedResources() throws Exception { + private List<RangerTaggedResource> getAllTaggedResources() throws Exception { if (LOG.isDebugEnabled()) { LOG.debug("==> TagFileStore.getAllTaggedResources()"); } - List<RangerResource> ret = new ArrayList<RangerResource>(); + List<RangerTaggedResource> ret = new ArrayList<RangerTaggedResource>(); try { // load resource definitions from file system - List<RangerResource> resources = fileStoreUtil.loadFromDir(new Path(fileStoreUtil.getDataDir()), FILE_PREFIX_TAG_RESOURCE, RangerResource.class); + List<RangerTaggedResource> resources = fileStoreUtil.loadFromDir(new Path(fileStoreUtil.getDataDir()), FILE_PREFIX_TAG_RESOURCE, RangerTaggedResource.class); if (CollectionUtils.isNotEmpty(resources)) { - for (RangerResource resource : resources) { + for (RangerTaggedResource resource : resources) { if (resource != null) { - // if the RangerResource is already found, remove the earlier definition + // if the RangerTaggedResource is already found, remove the earlier definition for (int i = 0; i < ret.size(); i++) { - RangerResource currResource = ret.get(i); + RangerTaggedResource currResource = ret.get(i); if (ObjectUtils.equals(currResource.getId(), resource.getId())) { ret.remove(i); @@ -631,13 +632,13 @@ public class TagFileStore extends AbstractTagStore { Set<String> ret = new HashSet<String>(); - List<RangerResource> resources = getResources(tagServiceName, componentType); + List<RangerTaggedResource> resources = getResources(tagServiceName, componentType); if (CollectionUtils.isNotEmpty(resources)) { - for (RangerResource resource : resources) { - List<RangerResource.RangerResourceTag> tags = resource.getTags(); + for (RangerTaggedResource resource : resources) { + List<RangerTaggedResource.RangerResourceTag> tags = resource.getTags(); if (CollectionUtils.isNotEmpty(tags)) { - for (RangerResource.RangerResourceTag tag : tags) { + for (RangerTaggedResource.RangerResourceTag tag : tags) { ret.add(tag.getName()); } } http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/26778304/agents-common/src/test/java/org/apache/ranger/plugin/policyengine/TestPolicyEngine.java ---------------------------------------------------------------------- diff --git a/agents-common/src/test/java/org/apache/ranger/plugin/policyengine/TestPolicyEngine.java b/agents-common/src/test/java/org/apache/ranger/plugin/policyengine/TestPolicyEngine.java index ab2583e..775f221 100644 --- a/agents-common/src/test/java/org/apache/ranger/plugin/policyengine/TestPolicyEngine.java +++ b/agents-common/src/test/java/org/apache/ranger/plugin/policyengine/TestPolicyEngine.java @@ -26,7 +26,7 @@ import org.apache.ranger.audit.provider.AuditHandler; import org.apache.ranger.audit.provider.AuditProviderFactory; import org.apache.ranger.plugin.audit.RangerDefaultAuditHandler; import org.apache.ranger.plugin.model.RangerPolicy; -import org.apache.ranger.plugin.model.RangerResource; +import org.apache.ranger.plugin.model.RangerTaggedResource; import org.apache.ranger.plugin.model.RangerServiceDef; import org.apache.ranger.plugin.policyengine.TestPolicyEngine.PolicyEngineTestCase.TestData; import org.apache.ranger.plugin.util.ServicePolicies; @@ -204,9 +204,9 @@ public class TestPolicyEngine { if(!StringUtils.isEmpty(tagsJsonString)) { try { - Type listType = new TypeToken<List<RangerResource.RangerResourceTag>>() { + Type listType = new TypeToken<List<RangerTaggedResource.RangerResourceTag>>() { }.getType(); - List<RangerResource.RangerResourceTag> tagList = gsonBuilder.fromJson(tagsJsonString, listType); + List<RangerTaggedResource.RangerResourceTag> tagList = gsonBuilder.fromJson(tagsJsonString, listType); context.put(RangerPolicyEngine.KEY_CONTEXT_TAGS, tagList); } catch (Exception e) { http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/26778304/agents-common/src/test/java/org/apache/ranger/plugin/store/TestTagStore.java ---------------------------------------------------------------------- diff --git a/agents-common/src/test/java/org/apache/ranger/plugin/store/TestTagStore.java b/agents-common/src/test/java/org/apache/ranger/plugin/store/TestTagStore.java index 15aecd6..f93bb4c 100644 --- a/agents-common/src/test/java/org/apache/ranger/plugin/store/TestTagStore.java +++ b/agents-common/src/test/java/org/apache/ranger/plugin/store/TestTagStore.java @@ -126,7 +126,6 @@ public class TestTagStore { } fs.delete(filePath, true); - */ } @@ -134,11 +133,11 @@ public class TestTagStore { public void testTagStore() throws Exception { /* - List<RangerResource> taggedResources = tagStore.getResources(filter); + List<RangerTaggedResource> taggedResources = tagStore.getResources(filter); int initResourceCount = taggedResources == null ? 0 : taggedResources.size(); - RangerResource rr = new RangerResource(); + RangerTaggedResource rr = new RangerTaggedResource(); rr.setComponentType("hive"); rr.setTagServiceName("tagdev"); @@ -158,14 +157,14 @@ public class TestTagStore { rr.setResourceSpec(resourceSpec); - List<RangerResource.RangerResourceTag> tags = new ArrayList<>(); + List<RangerTaggedResource.RangerResourceTag> tags = new ArrayList<>(); - tags.add(new RangerResource.RangerResourceTag("PII", null)); - tags.add(new RangerResource.RangerResourceTag("FINANCE", null)); + tags.add(new RangerTaggedResource.RangerResourceTag("PII", null)); + tags.add(new RangerTaggedResource.RangerResourceTag("FINANCE", null)); rr.setTags(tags); - RangerResource createdResource = tagStore.createResource(rr); + RangerTaggedResource createdResource = tagStore.createResource(rr); assertNotNull("createResource() failed", createdResource); @@ -178,6 +177,6 @@ public class TestTagStore { resourceSpec.remove("column"); taggedResources = tagStore.getResources("hive", resourceSpec); assertEquals("createResource() failed", initResourceCount, taggedResources == null ? 0 : taggedResources.size()); -*/ + */ } } http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/26778304/security-admin/src/main/java/org/apache/ranger/rest/TagREST.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/rest/TagREST.java b/security-admin/src/main/java/org/apache/ranger/rest/TagREST.java index 7ed17c2..e702961 100644 --- a/security-admin/src/main/java/org/apache/ranger/rest/TagREST.java +++ b/security-admin/src/main/java/org/apache/ranger/rest/TagREST.java @@ -25,7 +25,7 @@ import org.apache.commons.logging.LogFactory; import org.apache.ranger.biz.ServiceDBStore; import org.apache.ranger.common.RESTErrorUtil; import org.apache.ranger.plugin.model.RangerPolicy; -import org.apache.ranger.plugin.model.RangerResource; +import org.apache.ranger.plugin.model.RangerTaggedResource; import org.apache.ranger.plugin.model.RangerTagDef; import org.apache.ranger.plugin.store.file.TagFileStore; import org.apache.ranger.plugin.store.rest.ServiceRESTStore; @@ -220,12 +220,12 @@ public class TagREST { @Path(TagRESTConstants.RESOURCES_RESOURCE) @Produces({ "application/json", "application/xml" }) //@PreAuthorize("hasRole('ROLE_SYS_ADMIN')") - public RangerResource createResource(RangerResource resource) { + public RangerTaggedResource createResource(RangerTaggedResource resource) { if(LOG.isDebugEnabled()) { LOG.debug("==> TagREST.createResource(" + resource + ")"); } - RangerResource ret; + RangerTaggedResource ret; try { //RangerResourceValidator validator = validatorFactory.getResourceValidator(tagStore); @@ -248,7 +248,7 @@ public class TagREST { @Path(TagRESTConstants.RESOURCE_RESOURCE + "/{id}") @Produces({ "application/json", "application/xml" }) //@PreAuthorize("hasRole('ROLE_SYS_ADMIN')") - public RangerResource updateResource(@PathParam("id") Long id, RangerResource resource) { + public RangerTaggedResource updateResource(@PathParam("id") Long id, RangerTaggedResource resource) { if(LOG.isDebugEnabled()) { LOG.debug("==> TagREST.updateResource(" + id + ")"); } @@ -259,7 +259,7 @@ public class TagREST { throw restErrorUtil.createRESTException(HttpServletResponse.SC_BAD_REQUEST , "resource id mismatch", true); } - RangerResource ret; + RangerTaggedResource ret; try { //RangerResourceValidator validator = validatorFactory.getResourceValidator(tagStore); @@ -283,14 +283,14 @@ public class TagREST { @Produces({ "application/json", "application/xml" }) //@PreAuthorize("hasRole('ROLE_SYS_ADMIN')") - public RangerResource updateResource(@PathParam("id") final Long id, @DefaultValue(TagRESTConstants.ACTION_ADD) @QueryParam(TagRESTConstants.ACTION_OP) String op, List<RangerResource.RangerResourceTag> resourceTagList) { + public RangerTaggedResource updateResource(@PathParam("id") final Long id, @DefaultValue(TagRESTConstants.ACTION_ADD) @QueryParam(TagRESTConstants.ACTION_OP) String op, List<RangerTaggedResource.RangerResourceTag> resourceTagList) { - RangerResource ret; + RangerTaggedResource ret; if (op.equals(TagRESTConstants.ACTION_ADD) || op.equals(TagRESTConstants.ACTION_REPLACE) || op.equals(TagRESTConstants.ACTION_DELETE)) { - RangerResource oldResource; + RangerTaggedResource oldResource; try { oldResource = tagStore.getResource(id); } catch (Exception excp) { @@ -298,7 +298,7 @@ public class TagREST { throw restErrorUtil.createRESTException(HttpServletResponse.SC_BAD_REQUEST, excp.getMessage(), true); } - List<RangerResource.RangerResourceTag> oldTagsAndValues = oldResource.getTags(); + List<RangerTaggedResource.RangerResourceTag> oldTagsAndValues = oldResource.getTags(); switch (op) { case TagRESTConstants.ACTION_ADD: @@ -360,12 +360,12 @@ public class TagREST { @GET @Path(TagRESTConstants.RESOURCE_RESOURCE + "/{id}") @Produces({ "application/json", "application/xml" }) - public RangerResource getResource(@PathParam("id") Long id) { + public RangerTaggedResource getResource(@PathParam("id") Long id) { if(LOG.isDebugEnabled()) { LOG.debug("==> TagREST.getResource(" + id + ")"); } - RangerResource ret; + RangerTaggedResource ret; try { ret = tagStore.getResource(id); @@ -389,13 +389,13 @@ public class TagREST { @GET @Path(TagRESTConstants.RESOURCES_RESOURCE) @Produces({ "application/json", "application/xml" }) - public List<RangerResource> getResources(@QueryParam(TagRESTConstants.TAG_SERVICE_NAME_PARAM) String tagServiceName, + public List<RangerTaggedResource> getResources(@QueryParam(TagRESTConstants.TAG_SERVICE_NAME_PARAM) String tagServiceName, @QueryParam(TagRESTConstants.COMPONENT_TYPE_PARAM) String componentType) { if(LOG.isDebugEnabled()) { LOG.debug("==> TagREST.getResources(" + tagServiceName + ", " + componentType + ")"); } - List<RangerResource> ret = null; + List<RangerTaggedResource> ret = null; try { ret = tagStore.getResources(tagServiceName, componentType); @@ -409,9 +409,9 @@ public class TagREST { throw restErrorUtil.createRESTException(HttpServletResponse.SC_NOT_FOUND, "Not found", true); } - List<RangerResource> toBeFilteredOut = new ArrayList<RangerResource>(); + List<RangerTaggedResource> toBeFilteredOut = new ArrayList<RangerTaggedResource>(); - for (RangerResource rangerResource : ret) { + for (RangerTaggedResource rangerResource : ret) { if (CollectionUtils.isEmpty(rangerResource.getTags())) { toBeFilteredOut.add(rangerResource); } @@ -477,30 +477,29 @@ public class TagREST { @GET @Path(TagRESTConstants.RESOURCES_BY_SPEC_RESOURCE) @Produces({ "application/json", "application/xml" }) - public List<RangerResource> getResourcesBySpec(@QueryParam(TagRESTConstants.COMPONENT_TYPE_PARAM) String componentType) throws Exception { - + public List<RangerTaggedResource> getResourcesBySpec(@QueryParam(TagRESTConstants.COMPONENT_TYPE_PARAM) String componentType) throws Exception { return null; } @PUT @Path(TagRESTConstants.RESOURCE_SET_RESOURCE) @Produces({ "application/json", "application/xml" }) - public String setResource(RangerResource rangerResource, String componentType) { + public String setResource(RangerTaggedResource rangerResource, String componentType) { return null; } @PUT @Path(TagRESTConstants.RESOURCES_SET_RESOURCE) @Produces({ "application/json", "application/xml" }) - public Map<String, RangerPolicy.RangerPolicyResource> setResources(List<RangerResource> resources, String componentType) { + public Map<String, RangerPolicy.RangerPolicyResource> setResources(List<RangerTaggedResource> resources, String componentType) { return null; } @PUT @Path(TagRESTConstants.RESOURCE_UPDATE_RESOURCE) @Produces({ "application/json", "application/xml" }) - public String updateResourceTags(RangerResource resource, String componentType, List<RangerResource.RangerResourceTag> tagsToAdd, - List<RangerResource.RangerResourceTag> tagsToDelete) { + public String updateResourceTags(RangerTaggedResource resource, String componentType, List<RangerTaggedResource.RangerResourceTag> tagsToAdd, + List<RangerTaggedResource.RangerResourceTag> tagsToDelete) { return null; } }
