You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sentry.apache.org by ja...@apache.org on 2014/06/08 22:34:15 UTC

git commit: SENTRY-251: PolicyProviderForTest.addPrivilege breaks in some cases

Repository: incubator-sentry
Updated Branches:
  refs/heads/master 42e2453a8 -> fcb561e28


SENTRY-251: PolicyProviderForTest.addPrivilege breaks in some cases

(Sravya Tirukkovalur via Jarek Jarcec Cecho)


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

Branch: refs/heads/master
Commit: fcb561e282db9913bd7b3f26bfa9f3aa40d45992
Parents: 42e2453
Author: Jarek Jarcec Cecho <ja...@apache.org>
Authored: Sun Jun 8 13:33:22 2014 -0700
Committer: Jarek Jarcec Cecho <ja...@apache.org>
Committed: Sun Jun 8 13:33:59 2014 -0700

----------------------------------------------------------------------
 .../e2e/dbprovider/PolicyProviderForTest.java   | 69 ++++++++++----------
 1 file changed, 36 insertions(+), 33 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/fcb561e2/sentry-tests/sentry-tests-hive/src/test/java/org/apache/sentry/tests/e2e/dbprovider/PolicyProviderForTest.java
----------------------------------------------------------------------
diff --git a/sentry-tests/sentry-tests-hive/src/test/java/org/apache/sentry/tests/e2e/dbprovider/PolicyProviderForTest.java b/sentry-tests/sentry-tests-hive/src/test/java/org/apache/sentry/tests/e2e/dbprovider/PolicyProviderForTest.java
index bc2920d..8e8db72 100644
--- a/sentry-tests/sentry-tests-hive/src/test/java/org/apache/sentry/tests/e2e/dbprovider/PolicyProviderForTest.java
+++ b/sentry-tests/sentry-tests-hive/src/test/java/org/apache/sentry/tests/e2e/dbprovider/PolicyProviderForTest.java
@@ -18,6 +18,7 @@ package org.apache.sentry.tests.e2e.dbprovider;
 
 import static org.apache.sentry.provider.common.ProviderConstants.AUTHORIZABLE_SPLITTER;
 import static org.apache.sentry.provider.common.ProviderConstants.PRIVILEGE_PREFIX;
+import static org.apache.sentry.provider.common.ProviderConstants.ROLE_SPLITTER;
 import static org.apache.sentry.tests.e2e.hive.StaticUserGroup.ADMIN1;
 import static org.apache.sentry.tests.e2e.hive.StaticUserGroup.ADMINGROUP;
 
@@ -107,45 +108,47 @@ public class PolicyProviderForTest extends PolicyFile {
   private void addPrivilege(String roleName, String privileges) throws Exception {
     String serverName = null, dbName = null, tableName = null, uriPath = null;
     String action = AccessConstants.ALL;
+    for (String privilege : ROLE_SPLITTER.split(privileges)) {
+      for(String section : AUTHORIZABLE_SPLITTER.split(privilege)) {
+        // action is not an authorizeable
+        if(!section.toLowerCase().startsWith(PRIVILEGE_PREFIX)) {
+          DBModelAuthorizable dbAuthorizable = DBModelAuthorizables.from(section);
+          if(dbAuthorizable == null) {
+            throw new IOException("Unknow Auth type " + section);
+          }
 
-    for(String section : AUTHORIZABLE_SPLITTER.split(privileges)) {
-      // action is not an authorizeable
-      if(!section.toLowerCase().startsWith(PRIVILEGE_PREFIX)) {
-        DBModelAuthorizable dbAuthorizable = DBModelAuthorizables.from(section);
-        if(dbAuthorizable == null) {
-          throw new IOException("Unknow Auth type " + section);
-        }
-
-        if (AuthorizableType.Server.equals(dbAuthorizable.getAuthzType())) {
-          serverName = dbAuthorizable.getName();
-        } else if (AuthorizableType.Db.equals(dbAuthorizable.getAuthzType())) {
-          dbName = dbAuthorizable.getName();
-        } else if (AuthorizableType.Table.equals(dbAuthorizable.getAuthzType())) {
-          tableName = dbAuthorizable.getName();
-        } else if (AuthorizableType.URI.equals(dbAuthorizable.getAuthzType())) {
-          uriPath = dbAuthorizable.getName();
+          if (AuthorizableType.Server.equals(dbAuthorizable.getAuthzType())) {
+            serverName = dbAuthorizable.getName();
+          } else if (AuthorizableType.Db.equals(dbAuthorizable.getAuthzType())) {
+            dbName = dbAuthorizable.getName();
+          } else if (AuthorizableType.Table.equals(dbAuthorizable.getAuthzType())) {
+            tableName = dbAuthorizable.getName();
+          } else if (AuthorizableType.URI.equals(dbAuthorizable.getAuthzType())) {
+            uriPath = dbAuthorizable.getName();
+          } else {
+            throw new IOException("Unsupported auth type " + dbAuthorizable.getName()
+                + " : " + dbAuthorizable.getTypeName());
+          }
         } else {
-          throw new IOException("Unsupported auth type " + dbAuthorizable.getName()
-              + " : " + dbAuthorizable.getTypeName());
+          action = DBModelAction.valueOf(
+              StringUtils.removePrefix(section, PRIVILEGE_PREFIX).toUpperCase())
+              .toString();
         }
-      } else {
-        action = DBModelAction.valueOf(
-            StringUtils.removePrefix(section, PRIVILEGE_PREFIX).toUpperCase())
-            .toString();
       }
-    }
 
-    if (tableName != null) {
-      sentryClient.grantTablePrivilege(ADMIN1, roleName, serverName, dbName,
-          tableName, action);
-    } else if (dbName != null) {
-      sentryClient.grantDatabasePrivilege(ADMIN1, roleName, serverName, dbName);
-    } else if (uriPath != null) {
-      sentryClient.grantURIPrivilege(ADMIN1, roleName, serverName, uriPath);
-    } else if (serverName != null) {
-      sentryClient.grantServerPrivilege(ADMIN1, roleName, serverName);
-      ;
+      if (tableName != null) {
+        sentryClient.grantTablePrivilege(ADMIN1, roleName, serverName, dbName,
+            tableName, action);
+      } else if (dbName != null) {
+        sentryClient.grantDatabasePrivilege(ADMIN1, roleName, serverName, dbName);
+      } else if (uriPath != null) {
+        sentryClient.grantURIPrivilege(ADMIN1, roleName, serverName, uriPath);
+      } else if (serverName != null) {
+        sentryClient.grantServerPrivilege(ADMIN1, roleName, serverName);
+        ;
+      }
     }
+
   }
 
   private boolean usingSentryService() {