Repository: incubator-sentry Updated Branches: refs/heads/master ac919b28d -> 1a697a090
SENTRY-555: Ensure groupName returned for dir objects within prefix but not associated with an authz object is not null Project: http://git-wip-us.apache.org/repos/asf/incubator-sentry/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-sentry/commit/1a697a09 Tree: http://git-wip-us.apache.org/repos/asf/incubator-sentry/tree/1a697a09 Diff: http://git-wip-us.apache.org/repos/asf/incubator-sentry/diff/1a697a09 Branch: refs/heads/master Commit: 1a697a0909f1e43334bd36cf79c82b8c98b6f18a Parents: ac919b2 Author: Arun Suresh <[email protected]> Authored: Mon Dec 1 10:49:29 2014 -0800 Committer: Arun Suresh <[email protected]> Committed: Mon Dec 1 10:49:29 2014 -0800 ---------------------------------------------------------------------- .../hdfs/SentryAuthorizationProvider.java | 29 +++++++++----------- 1 file changed, 13 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/1a697a09/sentry-hdfs/sentry-hdfs-namenode-plugin/src/main/java/org/apache/sentry/hdfs/SentryAuthorizationProvider.java ---------------------------------------------------------------------- diff --git a/sentry-hdfs/sentry-hdfs-namenode-plugin/src/main/java/org/apache/sentry/hdfs/SentryAuthorizationProvider.java b/sentry-hdfs/sentry-hdfs-namenode-plugin/src/main/java/org/apache/sentry/hdfs/SentryAuthorizationProvider.java index 7d2940c..1d209f7 100644 --- a/sentry-hdfs/sentry-hdfs-namenode-plugin/src/main/java/org/apache/sentry/hdfs/SentryAuthorizationProvider.java +++ b/sentry-hdfs/sentry-hdfs-namenode-plugin/src/main/java/org/apache/sentry/hdfs/SentryAuthorizationProvider.java @@ -232,7 +232,7 @@ public class SentryAuthorizationProvider if (authzInfo.doesBelongToAuthzObject(pathElements)) { group = this.group; } else { - group = defaultAuthzProvider.getGroup(node, snapshotId); + group = getDefaultProviderGroup(node, snapshotId); } } else { group = this.group; @@ -307,12 +307,7 @@ public class SentryAuthorizationProvider List<AclEntry> list = new ArrayList<AclEntry>(); if (originalAuthzAsAcl) { String user = defaultAuthzProvider.getUser(node, snapshotId); - String group = defaultAuthzProvider.getGroup(node, snapshotId); - INodeAuthorizationInfo pNode = node.getParent(); - while (group == null && pNode != null) { - group = defaultAuthzProvider.getGroup(pNode, snapshotId); - pNode = pNode.getParent(); - } + String group = getDefaultProviderGroup(node, snapshotId); FsPermission perm = defaultAuthzProvider.getFsPermission(node, snapshotId); list.addAll(createAclEntries(user, group, perm)); } else { @@ -344,6 +339,17 @@ public class SentryAuthorizationProvider return f; } + private String getDefaultProviderGroup(INodeAuthorizationInfo node, + int snapshotId) { + String group = defaultAuthzProvider.getGroup(node, snapshotId); + INodeAuthorizationInfo pNode = node.getParent(); + while (group == null && pNode != null) { + group = defaultAuthzProvider.getGroup(pNode, snapshotId); + pNode = pNode.getParent(); + } + return group; + } + @Override public void removeAclFeature(INodeAuthorizationInfo node) { AclFeature aclFeature = node.getAclFeature(CURRENT_STATE_ID); @@ -360,13 +366,4 @@ public class SentryAuthorizationProvider } } -// @Override -// public boolean doesAllowChanges(INodeAuthorizationInfo node) { -// String[] pathElements = getPathElements(node); -// if (!authzInfo.isManaged(pathElements)) { -// return defaultAuthzProvider.doesAllowChanges(node); -// } -// return !authzInfo.doesBelongToAuthzObject(getPathElements(node)); -// } - }
