[ https://issues.apache.org/jira/browse/HBASE-13294?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14380753#comment-14380753 ]
Hudson commented on HBASE-13294: -------------------------------- FAILURE: Integrated in HBase-0.98 #921 (See [https://builds.apache.org/job/HBase-0.98/921/]) HBASE-13294 Fix the critical ancient loopholes in security testing infrastructure (Srikanth Srungarapu) (apurtell: rev 389f4051fb270ff209dddf4841f0ab448f47b105) * hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestCellACLWithMultipleVersions.java * hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestCellACLs.java * hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestScanEarlyTermination.java * hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestNamespaceCommands.java * hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestAccessController.java * hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/SecureTestUtil.java > Fix the critical ancient loopholes in security testing infrastructure. > ---------------------------------------------------------------------- > > Key: HBASE-13294 > URL: https://issues.apache.org/jira/browse/HBASE-13294 > Project: HBase > Issue Type: Bug > Reporter: Srikanth Srungarapu > Assignee: Srikanth Srungarapu > Fix For: 2.0.0, 1.0.1, 1.1.0, 0.98.12 > > Attachments: HBASE-13294-0.98.patch, HBASE-13294-0.98.patch, > HBASE-13294-branch-1.0.patch, HBASE-13294-branch-1.patch, > HBASE-13294-branch-1.patch, HBASE-13294.patch, HBASE-13294_v2.patch, > HBASE-13294_v3.patch, HBASE-13294_v3.patch, HBASE-13294_v4.patch, > HBASE-13294_v5.patch, HBASE-13294_v6.patch, HBASE-13294_v6.patch > > > Unfortunately, the "verifyDenied" method doesn't fail when action parameter > returns null. The relevant code snippet > {code} > try { > Object obj = user.runAs(action); > if (requireException) { > fail("Expected exception was not thrown for user '" + > user.getShortName() + "'"); > } > if (obj != null && obj instanceof List<?>) { > List<?> results = (List<?>) obj; > if (results != null && !results.isEmpty()) { > fail("Unexpected results for user '" + user.getShortName() + "'"); > } > } > } > {code} > As you can see, when obj is null, it returns silently. > Fixing this issue has uncovered another major bug. While constructing > actions, we're using TEST_UTIL.getConnection(), which replaces the "doAs" > user with the user who initiated the connection. I really am grateful to > [~mbertozzi] without whom debugging this would have been a nightmare. > Now, fixing these two issues have uncovered more issues in our tests :). The > main one is we're allowing the table owner to truncate table in code. But, in > test, we're not allowing him. We should either remove the code that allows > owner or document that the table owner can truncate table. > The other minor issues include granting permissions to namespace, but > checking whether user was able to access tables inside other namespace. > That's it, folks! -- This message was sent by Atlassian JIRA (v6.3.4#6332)