Skip to content

Commit

Permalink
HBASE-22879 user_permission command failed to show global permission
Browse files Browse the repository at this point in the history
  • Loading branch information
mymeiyi committed Aug 19, 2019
1 parent 7697d48 commit 5803246
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 2 deletions.
2 changes: 1 addition & 1 deletion hbase-shell/src/main/ruby/hbase/security.rb
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ def user_permission(table_regex = nil)
if !table_regex.nil? && isNamespace?(table_regex)
nsPerm = permission.to_java(org.apache.hadoop.hbase.security.access.NamespacePermission)
namespace = nsPerm.getNamespace
else
elsif !table_regex.nil?
tblPerm = permission.to_java(org.apache.hadoop.hbase.security.access.TablePermission)
namespace = tblPerm.getNamespace
table = !tblPerm.getTableName.nil? ? tblPerm.getTableName.getNameAsString : ''
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public class TestShell extends AbstractTestShell {
@Test
public void testRunShellTests() throws IOException {
System.setProperty("shell.test.exclude", "replication_admin_test.rb,rsgroup_shell_test.rb," +
"admin_test.rb,table_test.rb,quotas_test.rb");
"admin_test.rb,table_test.rb,quotas_test.rb,admin2_test.rb");
// Start all ruby tests
jruby.runScriptlet(PathType.ABSOLUTE, "src/test/ruby/tests_runner.rb");
}
Expand Down
25 changes: 25 additions & 0 deletions hbase-shell/src/test/ruby/hbase/security_admin_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -78,5 +78,30 @@ def teardown
end
assert(found_permission, "Permission for user test_grant_revoke was not found.")
end

define_test "Grant and revoke global permission should set access rights appropriately" do
global_user_name = "test_grant_revoke_global"
global_user = org.apache.hadoop.hbase.security.User.createUserForTesting(
$TEST_CLUSTER.getConfiguration, global_user_name, []).getName()
security_admin.grant(global_user,"W")
found_permission = false
security_admin.user_permission() do |user, permission|
if user == global_user_name
assert_match(eval("/WRITE/"), permission.to_s)
found_permission = true
end
end
assert(found_permission, "Permission for user " + global_user_name + " was not found.")

found_permission = false
security_admin.revoke(global_user)
security_admin.user_permission() do |user, permission|
if user == global_user_name
found_permission = true
end
end
assert(!found_permission, "Permission for user " + global_user_name + " was found.")
end

end
end

0 comments on commit 5803246

Please sign in to comment.