[ 
https://issues.apache.org/jira/browse/DERBY-2893?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12511293
 ] 

Kathey Marsden commented on DERBY-2893:
---------------------------------------

I wonder if the order of the decorators in the setup of this test has anything 
to do with the issue.
We have:
public static Test basesuite() {
                Test basesuite = new TestSuite(GrantRevokeTest.class);
                Test clean = new CleanDatabaseTestSetup(basesuite) {
                protected void decorateSQL(Statement s) throws SQLException {
                        s.execute("create schema s1");
                        s.execute("create schema s2");
                       ....
                     }

                Test test = DatabasePropertyTestSetup.builtinAuthentication(
                                clean, users, "grantrevoke");
        test = TestConfiguration.sqlAuthorizationDecorator(test);
            

Does this mean that decorateSQL will run before sqlAuthorization is enabled, 
meaning the tables don't have the necessary permission restrictions?  I haven't 
yet gotten the order successfully reversed but this is my current theory.

I verified manually that grant/revoke on all privileges (which is one of the 
cases failing) works ok, so I tend to think it is a test issue, but have not 
completely confirmed this yet.



> INSERT and UPDATES succeed when permission has not been granted.
> ----------------------------------------------------------------
>
>                 Key: DERBY-2893
>                 URL: https://issues.apache.org/jira/browse/DERBY-2893
>             Project: Derby
>          Issue Type: Bug
>          Components: Security, SQL
>    Affects Versions: 10.3.0.0, 10.3.1.0, 10.4.0.0
>            Reporter: Daniel John Debrunner
>            Priority: Critical
>
> GrantRevokeTest had assert methods (assertInsertPrivilege etc.) of the form
> try {
>    s.execute(command)
> } catch (SQLException sqle)
> {
>        if (!hasPrivilege) 
>             assertSQLState("42502", e);
>        else
>              fail(...);
> }
> Note that no fail() assert was in the try portion after the SQL execution. 
> The statement should not work if hasPrivilege is false, but the test will 
> incorrectly pass if the statement succeeds. I added fail asserts with 
> revision 552922 like:
> if (!hasPrivilege)
>        fail("expected no INSERT permission on table");
> but these two for INSERT and UPDATE caused the test to fail (about 6 fixtures 
> fail) indicating that the statement succeeds even if the permission is not 
> granted.
> It could be a test problem but needs some investigation.
> The asserts for assertInsertPrivilege and asserUpdatePrivilege are commented 
> out to stop the test failing.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to