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));
-//  }
-
 }

Reply via email to