Package org.apache.derby.security

Examples of org.apache.derby.security.DatabasePermission


            // raises IOException if dbname is non-canonicalizable
            final String url
                = (DatabasePermission.URL_PROTOCOL_DIRECTORY
                   + stripSubSubProtocolPrefix(dbname));
            final Permission dp
                = new DatabasePermission(url, DatabasePermission.CREATE);
           
            factory.checkSystemPrivileges(user, dp);
        } catch (AccessControlException ace) {
            throw Util.generateCsSQLException(
                    SQLState.AUTH_DATABASE_CREATE_MISSING_PERMISSION,
View Full Code Here


     * Tests DatabasePermission.
     */
    private void checkDatabasePermission() throws IOException {
        // test DatabasePermission with null url
        try {
            new DatabasePermission(null, DatabasePermission.CREATE);
            fail("expected NullPointerException");
        } catch (NullPointerException ex) {
            // expected exception
        }

        // test DatabasePermission with empty url
        try {
            new DatabasePermission("", DatabasePermission.CREATE);
            fail("expected IllegalArgumentException");
        } catch (IllegalArgumentException ex) {
            // expected exception
        }
       
        // test DatabasePermission with illegal url
        try {
            new DatabasePermission("no_url", DatabasePermission.CREATE);
            fail("expected IllegalArgumentException");
        } catch (IllegalArgumentException ex) {
            // expected exception
        }

        // test DatabasePermission with non-canonicalizable URL
        try {
            new DatabasePermission("directory:.*/\\:///../",
                                   DatabasePermission.CREATE);
            fail("expected IOException");
        } catch (IOException ex) {
            // expected exception
        }

        // test DatabasePermission with null actions
        try {
            new DatabasePermission("directory:dir", null);
            fail("expected NullPointerException");
        } catch (NullPointerException ex) {
            // expected exception
        }

        // test DatabasePermission with empty actions
        try {
            new DatabasePermission("directory:dir", "");
            fail("expected IllegalArgumentException");
        } catch (IllegalArgumentException ex) {
            // expected exception
        }
       
        // test DatabasePermission with illegal action list
        try {
            new DatabasePermission("directory:dir", "illegal_action");
            fail("expected IllegalArgumentException");
        } catch (IllegalArgumentException ex) {
            // expected exception
        }

        // test DatabasePermission with illegal action list
        try {
            new DatabasePermission("directory:dir", "illegal,action");
            fail("expected IllegalArgumentException");
        } catch (IllegalArgumentException ex) {
            // expected exception
        }
   
        // test DatabasePermission on illegal action list
        try {
            new DatabasePermission("directory:dir", "illegal;action");
            fail("expected IllegalArgumentException");
        } catch (IllegalArgumentException ex) {
            // expected exception
        }

        // test DatabasePermission on relative directory paths
        final DatabasePermission[] relDirPathPermissions
            = new DatabasePermission[relDirPaths.length];
        for (int i = 0; i < relDirPaths.length; i++) {
            relDirPathPermissions[i]
                = new DatabasePermission(relDirPaths[i],
                                         DatabasePermission.CREATE);
        }
        checkNameAndActions(relDirPathPermissions,
                            relDirPaths);
        checkHashCodeAndEquals(relDirPathPermissions,
                               relDirPathPermissions);
        checkImplies(relDirPathPermissions,
                     relDirPathPermissions);

        // test DatabasePermission on relative directory path aliases
        final DatabasePermission[] relDirPathAliasPermissions
            = new DatabasePermission[relDirPathAliases.length];
        for (int i = 0; i < relDirPathAliases.length; i++) {
            relDirPathAliasPermissions[i]
                = new DatabasePermission(relDirPathAliases[i],
                                         DatabasePermission.CREATE);
        }
        checkNameAndActions(relDirPathAliasPermissions,
                            relDirPathAliases);
        checkHashCodeAndEquals(relDirPathPermissions,
                               relDirPathAliasPermissions);
        checkImplies(relDirPathPermissions,
                     relDirPathAliasPermissions);

        // test DatabasePermission on absolute directory paths
        final DatabasePermission[] absDirPathPermissions
            = new DatabasePermission[absDirPaths.length];
        for (int i = 0; i < absDirPaths.length; i++) {
            absDirPathPermissions[i]
                = new DatabasePermission(absDirPaths[i],
                                         DatabasePermission.CREATE);
        }
        checkNameAndActions(absDirPathPermissions,
                            absDirPaths);
        checkHashCodeAndEquals(absDirPathPermissions,
                               absDirPathPermissions);
        checkImplies(absDirPathPermissions,
                     absDirPathPermissions);

        // test DatabasePermission on absolute directory path aliases
        final DatabasePermission[] absDirPathAliasPermissions
            = new DatabasePermission[absDirPathAliases.length];
        for (int i = 0; i < absDirPathAliases.length; i++) {
            absDirPathAliasPermissions[i]
                = new DatabasePermission(absDirPathAliases[i],
                                         DatabasePermission.CREATE);
        }
        checkNameAndActions(absDirPathAliasPermissions,
                            absDirPathAliases);
        checkHashCodeAndEquals(absDirPathPermissions,
                               absDirPathAliasPermissions);
        checkImplies(absDirPathPermissions,
                     absDirPathAliasPermissions);
       

        // test DatabasePermission for authorized user against policy file
        final DatabasePrincipal authorizedUser
            = new DatabasePrincipal("authorizedSystemUser");
        execute(authorizedUser,
                new CreateDatabaseAction(relDirPathPermissions[2]), true);
        execute(authorizedUser,
                new CreateDatabaseAction(relDirPathPermissions[3]), true);
        execute(authorizedUser,
                new CreateDatabaseAction(relDirPathPermissions[6]), false);
        execute(authorizedUser,
                new CreateDatabaseAction(relDirPathPermissions[7]), true);

        // test DatabasePermission for unauthorized user against policy file
        final DatabasePrincipal unAuthorizedUser
            = new DatabasePrincipal("unAuthorizedSystemUser");
        execute(unAuthorizedUser,
                new CreateDatabaseAction(relDirPathPermissions[2]), false);
        execute(unAuthorizedUser,
                new CreateDatabaseAction(relDirPathPermissions[3]), false);
        execute(unAuthorizedUser,
                new CreateDatabaseAction(relDirPathPermissions[6]), false);
        execute(unAuthorizedUser,
                new CreateDatabaseAction(relDirPathPermissions[7]), false);

        // test DatabasePermission for authorized user against policy file
        final DatabasePrincipal anyUser
            = new DatabasePrincipal("anyUser");
        final DatabasePermission dbPerm
            = new DatabasePermission("directory:dir",
                                     DatabasePermission.CREATE);
        execute(anyUser,
                new CreateDatabaseAction(dbPerm), true);
    }
View Full Code Here

    private void checkNameAndActions(DatabasePermission[] dbperm,
                                     String[] dbpath)
        throws IOException {
        //assert(dpperm.length == dbpath.length)
        for (int i = 0; i < dbperm.length; i++) {
            final DatabasePermission dbp = dbperm[i];
            assertEquals("test: " + dbp + ".getName()",
                         dbpath[i], dbp.getName());
            assertEquals("test: " + dbp + ".getActions()",
                         DatabasePermission.CREATE, dbp.getActions());
        }
    }
View Full Code Here

            // raises IOException if dbname is non-canonicalizable
            final String url
                = (DatabasePermission.URL_PROTOCOL_DIRECTORY
                   + stripSubSubProtocolPrefix(dbname));
            final Permission dp
                = new DatabasePermission(url, DatabasePermission.CREATE);
           
            factory.checkSystemPrivileges(user, dp);
        } catch (AccessControlException ace) {
            throw Util.generateCsSQLException(
                    SQLState.AUTH_DATABASE_CREATE_MISSING_PERMISSION,
View Full Code Here

            // raises IOException if dbname is non-canonicalizable
            final String url
                = (DatabasePermission.URL_PROTOCOL_DIRECTORY
                   + stripSubSubProtocolPrefix(dbname));
            final Permission dp
                = new DatabasePermission(url, DatabasePermission.CREATE);
           
            factory.checkSystemPrivileges(user, dp);
        } catch (AccessControlException ace) {
            throw Util.generateCsSQLException(
                    SQLState.AUTH_DATABASE_CREATE_MISSING_PERMISSION,
View Full Code Here

    private void checkImplies(DatabasePermission[] dbp0,
                              DatabasePermission[] dbp1)
        throws IOException {
        //assert(dbp0.length == dbp1.length)
        for (int i = 0; i < dbp0.length; i++) {
            final DatabasePermission p0 = dbp0[i];
            for (int j = 0; j < dbp0.length; j++) {
                final DatabasePermission p1 = dbp1[j];
                assertEquals("test: " + p0 + ".implies" + p1,
                             dirPathImplications[i][j], p0.implies(p1));
                assertEquals("test: " + p1 + ".implies" + p0,
                             dirPathImplications[j][i], p1.implies(p0));
            }
        }
    }
View Full Code Here

     * Tests DatabasePermission.
     */
    private void checkDatabasePermission() throws IOException {
        // test DatabasePermission with null url
        try {
            new DatabasePermission(null, DatabasePermission.CREATE);
            fail("expected NullPointerException");
        } catch (NullPointerException ex) {
            // expected exception
        }

        // test DatabasePermission with empty url
        try {
            new DatabasePermission("", DatabasePermission.CREATE);
            fail("expected IllegalArgumentException");
        } catch (IllegalArgumentException ex) {
            // expected exception
        }
       
        // test DatabasePermission with illegal url
        try {
            new DatabasePermission("no_url", DatabasePermission.CREATE);
            fail("expected IllegalArgumentException");
        } catch (IllegalArgumentException ex) {
            // expected exception
        }

        // test DatabasePermission with non-canonicalizable URL
        try {
            new DatabasePermission("directory:.*/\\:///../",
                                   DatabasePermission.CREATE);
            fail("expected IOException");
        } catch (IOException ex) {
            // expected exception
        }

        // test DatabasePermission with null actions
        try {
            new DatabasePermission("directory:dir", null);
            fail("expected NullPointerException");
        } catch (NullPointerException ex) {
            // expected exception
        }

        // test DatabasePermission with empty actions
        try {
            new DatabasePermission("directory:dir", "");
            fail("expected IllegalArgumentException");
        } catch (IllegalArgumentException ex) {
            // expected exception
        }
       
        // test DatabasePermission with illegal action list
        try {
            new DatabasePermission("directory:dir", "illegal_action");
            fail("expected IllegalArgumentException");
        } catch (IllegalArgumentException ex) {
            // expected exception
        }

        // test DatabasePermission with illegal action list
        try {
            new DatabasePermission("directory:dir", "illegal,action");
            fail("expected IllegalArgumentException");
        } catch (IllegalArgumentException ex) {
            // expected exception
        }
   
        // test DatabasePermission on illegal action list
        try {
            new DatabasePermission("directory:dir", "illegal;action");
            fail("expected IllegalArgumentException");
        } catch (IllegalArgumentException ex) {
            // expected exception
        }

        // test DatabasePermission on relative directory paths
        final DatabasePermission[] relDirPathPermissions
            = new DatabasePermission[relDirPaths.length];
        for (int i = 0; i < relDirPaths.length; i++) {
            relDirPathPermissions[i]
                = new DatabasePermission(relDirPaths[i],
                                         DatabasePermission.CREATE);
        }
        checkNameAndActions(relDirPathPermissions,
                            relDirPaths);
        checkHashCodeAndEquals(relDirPathPermissions,
                               relDirPathPermissions);
        checkImplies(relDirPathPermissions,
                     relDirPathPermissions);

        // test DatabasePermission on relative directory path aliases
        final DatabasePermission[] relDirPathAliasPermissions
            = new DatabasePermission[relDirPathAliases.length];
        for (int i = 0; i < relDirPathAliases.length; i++) {
            relDirPathAliasPermissions[i]
                = new DatabasePermission(relDirPathAliases[i],
                                         DatabasePermission.CREATE);
        }
        checkNameAndActions(relDirPathAliasPermissions,
                            relDirPathAliases);
        checkHashCodeAndEquals(relDirPathPermissions,
                               relDirPathAliasPermissions);
        checkImplies(relDirPathPermissions,
                     relDirPathAliasPermissions);

        // test DatabasePermission on absolute directory paths
        final DatabasePermission[] absDirPathPermissions
            = new DatabasePermission[absDirPaths.length];
        for (int i = 0; i < absDirPaths.length; i++) {
            absDirPathPermissions[i]
                = new DatabasePermission(absDirPaths[i],
                                         DatabasePermission.CREATE);
        }
        checkNameAndActions(absDirPathPermissions,
                            absDirPaths);
        checkHashCodeAndEquals(absDirPathPermissions,
                               absDirPathPermissions);
        checkImplies(absDirPathPermissions,
                     absDirPathPermissions);

        // test DatabasePermission on absolute directory path aliases
        final DatabasePermission[] absDirPathAliasPermissions
            = new DatabasePermission[absDirPathAliases.length];
        for (int i = 0; i < absDirPathAliases.length; i++) {
            absDirPathAliasPermissions[i]
                = new DatabasePermission(absDirPathAliases[i],
                                         DatabasePermission.CREATE);
        }
        checkNameAndActions(absDirPathAliasPermissions,
                            absDirPathAliases);
        checkHashCodeAndEquals(absDirPathPermissions,
                               absDirPathAliasPermissions);
        checkImplies(absDirPathPermissions,
                     absDirPathAliasPermissions);
       

        // test DatabasePermission for authorized user against policy file
        final DatabasePrincipal authorizedUser
            = new DatabasePrincipal("authorizedSystemUser");
        execute(authorizedUser,
                new CreateDatabaseAction(relDirPathPermissions[2]), true);
        execute(authorizedUser,
                new CreateDatabaseAction(relDirPathPermissions[3]), true);
        execute(authorizedUser,
                new CreateDatabaseAction(relDirPathPermissions[6]), false);
        execute(authorizedUser,
                new CreateDatabaseAction(relDirPathPermissions[7]), true);

        // test DatabasePermission for unauthorized user against policy file
        final DatabasePrincipal unAuthorizedUser
            = new DatabasePrincipal("unAuthorizedSystemUser");
        execute(unAuthorizedUser,
                new CreateDatabaseAction(relDirPathPermissions[2]), false);
        execute(unAuthorizedUser,
                new CreateDatabaseAction(relDirPathPermissions[3]), false);
        execute(unAuthorizedUser,
                new CreateDatabaseAction(relDirPathPermissions[6]), false);
        execute(unAuthorizedUser,
                new CreateDatabaseAction(relDirPathPermissions[7]), false);

        // test DatabasePermission for authorized user against policy file
        final DatabasePrincipal anyUser
            = new DatabasePrincipal("anyUser");
        final DatabasePermission dbPerm
            = new DatabasePermission("directory:dir",
                                     DatabasePermission.CREATE);
        execute(anyUser,
                new CreateDatabaseAction(dbPerm), true);
    }
View Full Code Here

    private void checkNameAndActions(DatabasePermission[] dbperm,
                                     String[] dbpath)
        throws IOException {
        //assert(dpperm.length == dbpath.length)
        for (int i = 0; i < dbperm.length; i++) {
            final DatabasePermission dbp = dbperm[i];
            assertEquals("test: " + dbp + ".getName()",
                         dbpath[i], dbp.getName());
            assertEquals("test: " + dbp + ".getActions()",
                         DatabasePermission.CREATE, dbp.getActions());
        }
    }
View Full Code Here

    private void checkHashCodeAndEquals(DatabasePermission[] dbp0,
                                        DatabasePermission[] dbp1)
        throws IOException {
        //assert(dbp0.length == dbp1.length)
        for (int i = 0; i < dbp0.length; i++) {
            final DatabasePermission p0 = dbp0[i];
            for (int j = 0; j < dbp0.length; j++) {
                final DatabasePermission p1 = dbp1[j];
                if (i == j) {
                    assertTrue(p0.hashCode() == p1.hashCode());
                    assertTrue(p0.equals(p1));
                } else {
                    assertTrue(p0.hashCode() != p1.hashCode());
                    assertTrue(!p0.equals(p1));
                }
            }
        }
    }
View Full Code Here

            // raises IOException if dbname is non-canonicalizable
            final String url
                = (DatabasePermission.URL_PROTOCOL_DIRECTORY
                   + stripSubSubProtocolPrefix(dbname));
            final Permission dp
                = new DatabasePermission(url, DatabasePermission.CREATE);
           
            factory.checkSystemPrivileges(user, dp);
        } catch (AccessControlException ace) {
            throw Util.generateCsSQLException(
                    SQLState.AUTH_DATABASE_CREATE_MISSING_PERMISSION,
View Full Code Here

TOP

Related Classes of org.apache.derby.security.DatabasePermission

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.