Repository: falcon Updated Branches: refs/heads/master 3abefccf5 -> aaf33261f
FALCON-2035 Entity list operation without type parameter doesn't work when authorization is enabled Test entity list operation without type parameter works when authorization is enabled. Author: yzheng-hortonworks <[email protected]> Reviewers: @pallavi-rao, @bvellanki Closes #189 from yzheng-hortonworks/FALCON-2035 and squashes the following commits: 0cbd7a4 [yzheng-hortonworks] review by pallavi 4f7c4a4 [yzheng-hortonworks] review by balu 7aa034b [yzheng-hortonworks] FALCON-2035 Entity list operation without type parameter doesn't work when authorization is enabled Project: http://git-wip-us.apache.org/repos/asf/falcon/repo Commit: http://git-wip-us.apache.org/repos/asf/falcon/commit/aaf33261 Tree: http://git-wip-us.apache.org/repos/asf/falcon/tree/aaf33261 Diff: http://git-wip-us.apache.org/repos/asf/falcon/diff/aaf33261 Branch: refs/heads/master Commit: aaf33261f32ba87d95c268e09a593f9ebae1f46b Parents: 3abefcc Author: yzheng-hortonworks <[email protected]> Authored: Tue Jun 21 11:54:09 2016 +0530 Committer: Pallavi Rao <[email protected]> Committed: Tue Jun 21 11:54:09 2016 +0530 ---------------------------------------------------------------------- .../apache/falcon/security/DefaultAuthorizationProvider.java | 8 ++++++-- .../falcon/security/DefaultAuthorizationProviderTest.java | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/falcon/blob/aaf33261/common/src/main/java/org/apache/falcon/security/DefaultAuthorizationProvider.java ---------------------------------------------------------------------- diff --git a/common/src/main/java/org/apache/falcon/security/DefaultAuthorizationProvider.java b/common/src/main/java/org/apache/falcon/security/DefaultAuthorizationProvider.java index 5eb6a25..a4410af 100644 --- a/common/src/main/java/org/apache/falcon/security/DefaultAuthorizationProvider.java +++ b/common/src/main/java/org/apache/falcon/security/DefaultAuthorizationProvider.java @@ -59,6 +59,7 @@ public class DefaultAuthorizationProvider implements AuthorizationProvider { private static final Set<String> RESOURCES = new HashSet<String>( Arrays.asList(new String[]{"admin", "entities", "instance", "metadata", "extension", })); + private static final String LIST_OPERATION = "list"; /** * Constant for the configuration property that indicates the prefix. @@ -170,7 +171,11 @@ public class DefaultAuthorizationProvider implements AuthorizationProvider { authorizeAdminResource(authenticatedUGI, action); } } else if ("entities".equals(resource) || "instance".equals(resource)) { - authorizeEntityResource(authenticatedUGI, entityName, entityType, action); + if ("entities".equals(resource) && LIST_OPERATION.equals(action)) { + LOG.info("Skipping authorization for entity list operations"); + } else { + authorizeEntityResource(authenticatedUGI, entityName, entityType, action); + } } else if ("metadata".equals(resource)) { authorizeMetadataResource(authenticatedUGI, action); } @@ -296,7 +301,6 @@ public class DefaultAuthorizationProvider implements AuthorizationProvider { String entityName, String entityType, String action) throws AuthorizationException, EntityNotRegisteredException { - Validate.notEmpty(entityType, "Entity type cannot be empty or null"); LOG.debug("Authorizing authenticatedUser={} against entity/instance action={}, " + "entity name={}, entity type={}", http://git-wip-us.apache.org/repos/asf/falcon/blob/aaf33261/common/src/test/java/org/apache/falcon/security/DefaultAuthorizationProviderTest.java ---------------------------------------------------------------------- diff --git a/common/src/test/java/org/apache/falcon/security/DefaultAuthorizationProviderTest.java b/common/src/test/java/org/apache/falcon/security/DefaultAuthorizationProviderTest.java index 3a6d8c0..2196ad1 100644 --- a/common/src/test/java/org/apache/falcon/security/DefaultAuthorizationProviderTest.java +++ b/common/src/test/java/org/apache/falcon/security/DefaultAuthorizationProviderTest.java @@ -315,7 +315,7 @@ public class DefaultAuthorizationProviderTest { "admin", realUser, new String[]{"admin", }); DefaultAuthorizationProvider provider = new DefaultAuthorizationProvider(); - provider.authorizeResource("entities", "list", null, "primary-cluster", proxyUgi); + provider.authorizeResource("instance", "list", null, "sample-process", proxyUgi); Assert.fail("Bad entity type"); } @@ -328,7 +328,7 @@ public class DefaultAuthorizationProviderTest { "admin", realUser, new String[]{"admin", }); DefaultAuthorizationProvider provider = new DefaultAuthorizationProvider(); - provider.authorizeResource("entities", "list", "clusterz", "primary-cluster", proxyUgi); + provider.authorizeResource("instance", "list", "processz", "sample-process", proxyUgi); Assert.fail("Bad entity type"); }
