You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sentry.apache.org by sr...@apache.org on 2014/09/16 02:29:12 UTC

git commit: SENTRY-421: Metastore binding is not constructing in fully qualified URI sentry recognizable format (Prasad Mujumdar via Sravya Tirukkovalur)

Repository: incubator-sentry
Updated Branches:
  refs/heads/master 00a5eba1f -> 89a9243fd


SENTRY-421: Metastore binding is not constructing in fully qualified URI sentry recognizable format (Prasad Mujumdar via Sravya Tirukkovalur)


Project: http://git-wip-us.apache.org/repos/asf/incubator-sentry/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-sentry/commit/89a9243f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-sentry/tree/89a9243f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-sentry/diff/89a9243f

Branch: refs/heads/master
Commit: 89a9243fd3a11f0852c303533b92013633cd6c23
Parents: 00a5eba
Author: Sravya Tirukkovalur <sr...@clouera.com>
Authored: Mon Sep 15 17:27:37 2014 -0700
Committer: Sravya Tirukkovalur <sr...@clouera.com>
Committed: Mon Sep 15 17:27:37 2014 -0700

----------------------------------------------------------------------
 .../metastore/MetastoreAuthzBinding.java        | 21 +++++++++++++-------
 1 file changed, 14 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/89a9243f/sentry-binding/sentry-binding-hive/src/main/java/org/apache/sentry/binding/metastore/MetastoreAuthzBinding.java
----------------------------------------------------------------------
diff --git a/sentry-binding/sentry-binding-hive/src/main/java/org/apache/sentry/binding/metastore/MetastoreAuthzBinding.java b/sentry-binding/sentry-binding-hive/src/main/java/org/apache/sentry/binding/metastore/MetastoreAuthzBinding.java
index 51e3d77..e7f96c1 100644
--- a/sentry-binding/sentry-binding-hive/src/main/java/org/apache/sentry/binding/metastore/MetastoreAuthzBinding.java
+++ b/sentry-binding/sentry-binding-hive/src/main/java/org/apache/sentry/binding/metastore/MetastoreAuthzBinding.java
@@ -100,11 +100,17 @@ public class MetastoreAuthzBinding extends MetaStorePreEventListener {
       return this;
     }
 
-    public HierarcyBuilder addUriToOutput(Server server, String uriPath) {
+    public HierarcyBuilder addUriToOutput(Server server, String uriPath,
+        String warehouseDirPath) throws MetaException {
       List<DBModelAuthorizable> uriHierarchy = new ArrayList<DBModelAuthorizable>();
       addServerToOutput(server);
       uriHierarchy.add(server);
-      uriHierarchy.add(new AccessURI(uriPath));
+      try {
+        uriHierarchy.add(new AccessURI(PathUtils.parseDFSURI(warehouseDirPath,
+            uriPath)));
+      } catch (URISyntaxException e) {
+        throw new MetaException("Error paring the URI " + e.getMessage());
+      }
       authHierarchy.add(uriHierarchy);
       return this;
     }
@@ -130,7 +136,7 @@ public class MetastoreAuthzBinding extends MetaStorePreEventListener {
   private final HiveConf hiveConf;
   private final ImmutableSet<String> serviceUsers;
   private HiveAuthzBinding hiveAuthzBinding;
-  private String warehouseDir;
+  private final String warehouseDir;
 
   public MetastoreAuthzBinding(Configuration config) throws Exception {
     super(config);
@@ -233,7 +239,7 @@ public class MetastoreAuthzBinding extends MetaStorePreEventListener {
       } catch(URISyntaxException e) {
         throw new MetaException(e.getMessage());
       }
-      inputBuilder.addUriToOutput(getAuthServer(), uriPath);
+      inputBuilder.addUriToOutput(getAuthServer(), uriPath, warehouseDir);
     }
     authorizeMetastoreAccess(HiveOperation.CREATETABLE, inputBuilder.build(),
         outputBuilder.build());
@@ -280,7 +286,8 @@ public class MetastoreAuthzBinding extends MetaStorePreEventListener {
       throw new MetaException(e.getMessage());
     }
     if (oldLocationUri.compareTo(newLocationUri) != 0) {
-      outputBuilder.addUriToOutput(getAuthServer(), newLocationUri);
+      outputBuilder.addUriToOutput(getAuthServer(), newLocationUri,
+          warehouseDir);
       operation = HiveOperation.ALTERTABLE_LOCATION;
     }
     authorizeMetastoreAccess(
@@ -314,7 +321,7 @@ public class MetastoreAuthzBinding extends MetaStorePreEventListener {
 	        throw new MetaException(e.getMessage());
 	      }
 	      if (!partitionLocation.startsWith(tableLocation + File.separator)) {
-	        outputBuilder.addUriToOutput(getAuthServer(), uriPath);
+          outputBuilder.addUriToOutput(getAuthServer(), uriPath, warehouseDir);
 	      }
 	    }
       authorizeMetastoreAccess(HiveOperation.ALTERTABLE_ADDPARTS,
@@ -356,7 +363,7 @@ public class MetastoreAuthzBinding extends MetaStorePreEventListener {
       } catch (URISyntaxException e) {
         throw new MetaException(e.getMessage());
       }
-      outputBuilder.addUriToOutput(getAuthServer(), uriPath);
+      outputBuilder.addUriToOutput(getAuthServer(), uriPath, warehouseDir);
     }
     authorizeMetastoreAccess(
         HiveOperation.ALTERPARTITION_LOCATION,