Repository: incubator-sentry Updated Branches: refs/heads/master 37d8e8457 -> c7f7fa57a
SENTRY-221: Privilege scope is case sensitive (Sravya Tirukkovalur via Prasad Mujumdar) Project: http://git-wip-us.apache.org/repos/asf/incubator-sentry/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-sentry/commit/c7f7fa57 Tree: http://git-wip-us.apache.org/repos/asf/incubator-sentry/tree/c7f7fa57 Diff: http://git-wip-us.apache.org/repos/asf/incubator-sentry/diff/c7f7fa57 Branch: refs/heads/master Commit: c7f7fa57aa406cd148f21c09d498b1468c1ce663 Parents: 37d8e84 Author: Prasad Mujumdar <[email protected]> Authored: Wed May 21 00:51:29 2014 -0700 Committer: Prasad Mujumdar <[email protected]> Committed: Wed May 21 00:51:29 2014 -0700 ---------------------------------------------------------------------- .../provider/db/service/persistent/SentryStore.java | 3 ++- .../provider/db/service/persistent/TestSentryStore.java | 10 +++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/c7f7fa57/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/persistent/SentryStore.java ---------------------------------------------------------------------- diff --git a/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/persistent/SentryStore.java b/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/persistent/SentryStore.java index 604dd64..cd71a58 100644 --- a/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/persistent/SentryStore.java +++ b/sentry-provider/sentry-provider-db/src/main/java/org/apache/sentry/provider/db/service/persistent/SentryStore.java @@ -401,7 +401,7 @@ public class SentryStore { // Validate privilege scope try { - scope = Enum.valueOf(PrivilegeScope.class, privilege.getPrivilegeScope()); + scope = Enum.valueOf(PrivilegeScope.class, privilege.getPrivilegeScope().toUpperCase()); } catch (IllegalArgumentException e) { throw new SentryInvalidInputException("Invalid Privilege scope: " + privilege.getPrivilegeScope()); @@ -470,6 +470,7 @@ public class SentryStore { } else { pm.retrieve(sentryRole); sentryRole.removePrivileges(); + pm.deletePersistent(sentryRole); } CommitContext commit = commitUpdateTransaction(pm); http://git-wip-us.apache.org/repos/asf/incubator-sentry/blob/c7f7fa57/sentry-provider/sentry-provider-db/src/test/java/org/apache/sentry/provider/db/service/persistent/TestSentryStore.java ---------------------------------------------------------------------- diff --git a/sentry-provider/sentry-provider-db/src/test/java/org/apache/sentry/provider/db/service/persistent/TestSentryStore.java b/sentry-provider/sentry-provider-db/src/test/java/org/apache/sentry/provider/db/service/persistent/TestSentryStore.java index 26bbf97..0d8e24f 100644 --- a/sentry-provider/sentry-provider-db/src/test/java/org/apache/sentry/provider/db/service/persistent/TestSentryStore.java +++ b/sentry-provider/sentry-provider-db/src/test/java/org/apache/sentry/provider/db/service/persistent/TestSentryStore.java @@ -107,7 +107,15 @@ public class TestSentryStore { // expected } } - + @Test + public void testCaseSensitiveScope() throws Exception { + String roleName = "role1"; + String grantor = "g1"; + long seqId = sentryStore.createSentryRole(roleName, grantor).getSequenceId(); + TSentryPrivilege sentryPrivilege = new TSentryPrivilege("Database", "server1", "all"); + sentryPrivilege.setDbName("db1"); + assertEquals(seqId + 1, sentryStore.alterSentryRoleGrantPrivilege(roleName, sentryPrivilege).getSequenceId()); + } @Test public void testCreateDropRole() throws Exception { String roleName = "test-drop-role";
