Search in sources :

Example 71 with TreePermission

use of org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission in project jackrabbit-oak by apache.

the class CompositeProviderNoScopeTest method testTreePermissionCanReadAdmin.

@Test
public void testTreePermissionCanReadAdmin() {
    TreePermission parentPermission = TreePermission.EMPTY;
    TreePermission parentPermission2 = TreePermission.EMPTY;
    for (String nodePath : TP_PATHS) {
        Tree tree = readOnlyRoot.getTree(nodePath);
        TreePermission tp = cppAdminUser.getTreePermission(tree, parentPermission);
        TreePermission tp2 = defAdminUser.getTreePermission(tree, parentPermission2);
        assertTrue(nodePath, tp.canRead());
        assertTrue(nodePath, tp.canRead(PROPERTY_STATE));
        assertTrue(nodePath + "(default)", tp2.canRead());
        assertTrue(nodePath + "(default)", tp2.canRead(PROPERTY_STATE));
        parentPermission = tp;
        parentPermission2 = tp2;
    }
}
Also used : Tree(org.apache.jackrabbit.oak.api.Tree) ImmutableTree(org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree) TreePermission(org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission) Test(org.junit.Test)

Example 72 with TreePermission

use of org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission in project jackrabbit-oak by apache.

the class CompositeProviderNoScopeTest method testGetTreePermissionInstance.

@Override
@Test
public void testGetTreePermissionInstance() throws Exception {
    PermissionProvider pp = createPermissionProvider();
    TreePermission parentPermission = TreePermission.EMPTY;
    for (String path : TP_PATHS) {
        Tree t = readOnlyRoot.getTree(path);
        TreePermission tp = pp.getTreePermission(t, parentPermission);
        assertCompositeTreePermission(t.isRoot(), tp);
        parentPermission = tp;
    }
}
Also used : PermissionProvider(org.apache.jackrabbit.oak.spi.security.authorization.permission.PermissionProvider) AggregatedPermissionProvider(org.apache.jackrabbit.oak.spi.security.authorization.permission.AggregatedPermissionProvider) Tree(org.apache.jackrabbit.oak.api.Tree) ImmutableTree(org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree) TreePermission(org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission) Test(org.junit.Test)

Example 73 with TreePermission

use of org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission in project jackrabbit-oak by apache.

the class CompositeTreePermissionTest method testCanRead.

@Test
public void testCanRead() throws Exception {
    TreePermission rootTp = createRootTreePermission(fullScopeProvider, fullScopeProvider);
    Field f = CompositeTreePermission.class.getDeclaredField("canRead");
    f.setAccessible(true);
    Object canRead = f.get(rootTp);
    assertNull(canRead);
    rootTp.canRead();
    canRead = f.get(rootTp);
    assertNotNull(canRead);
}
Also used : Field(java.lang.reflect.Field) TreePermission(org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission) AbstractSecurityTest(org.apache.jackrabbit.oak.AbstractSecurityTest) Test(org.junit.Test)

Example 74 with TreePermission

use of org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission in project jackrabbit-oak by apache.

the class CompositeProviderScopeTest method testTreePermissionIsGranted.

@Test
public void testTreePermissionIsGranted() throws Exception {
    TreePermission parentPermission = TreePermission.EMPTY;
    for (String path : TP_PATHS) {
        TreePermission tp = cppTestUser.getTreePermission(readOnlyRoot.getTree(path), parentPermission);
        Long toTest = (defPermissions.containsKey(path)) ? defPermissions.get(path) : defPermissions.get(PathUtils.getAncestorPath(path, 1));
        if (toTest != null) {
            if (testProvider.isSupported(path)) {
                assertTrue(tp.isGranted(Permissions.diff(toTest, Permissions.ADD_NODE | Permissions.ADD_PROPERTY)));
                assertFalse(tp.isGranted(Permissions.ADD_PROPERTY | Permissions.ADD_NODE));
            } else {
                assertTrue(tp.isGranted(toTest));
            }
        }
        parentPermission = tp;
    }
}
Also used : TreePermission(org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission) Test(org.junit.Test)

Example 75 with TreePermission

use of org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission in project jackrabbit-oak by apache.

the class CompositeProviderScopeTest method testTreePermissionIsGrantedAdmin.

@Test
public void testTreePermissionIsGrantedAdmin() {
    TreePermission parentPermission = TreePermission.EMPTY;
    for (String path : TP_PATHS) {
        TreePermission tp = cppAdminUser.getTreePermission(readOnlyRoot.getTree(path), parentPermission);
        if (testProvider.isSupported(path)) {
            assertTrue(path, tp.isGranted(Permissions.diff(Permissions.ALL, Permissions.ADD_NODE | Permissions.ADD_PROPERTY)));
            assertFalse(path, tp.isGranted(Permissions.ADD_PROPERTY | Permissions.ADD_NODE));
            assertFalse(path, tp.isGranted(Permissions.ALL));
        } else {
            assertTrue(path, tp.isGranted(Permissions.ALL));
        }
        parentPermission = tp;
    }
    parentPermission = TreePermission.EMPTY;
    for (String nodePath : PATH_OUTSIDE_SCOPE) {
        Tree tree = readOnlyRoot.getTree(nodePath);
        TreePermission tp = cppAdminUser.getTreePermission(tree, parentPermission);
        assertTrue(nodePath, tp.isGranted(Permissions.ALL));
        parentPermission = tp;
    }
}
Also used : Tree(org.apache.jackrabbit.oak.api.Tree) TreePermission(org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission) Test(org.junit.Test)

Aggregations

TreePermission (org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission)109 Test (org.junit.Test)94 Tree (org.apache.jackrabbit.oak.api.Tree)53 AbstractSecurityTest (org.apache.jackrabbit.oak.AbstractSecurityTest)41 ImmutableTree (org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree)22 PermissionProvider (org.apache.jackrabbit.oak.spi.security.authorization.permission.PermissionProvider)11 NodeState (org.apache.jackrabbit.oak.spi.state.NodeState)10 AggregatedPermissionProvider (org.apache.jackrabbit.oak.spi.security.authorization.permission.AggregatedPermissionProvider)8 PropertyState (org.apache.jackrabbit.oak.api.PropertyState)6 Nonnull (javax.annotation.Nonnull)4 AccessControlManager (javax.jcr.security.AccessControlManager)4 Root (org.apache.jackrabbit.oak.api.Root)4 JackrabbitAccessControlList (org.apache.jackrabbit.api.security.JackrabbitAccessControlList)3 TreeType (org.apache.jackrabbit.oak.plugins.tree.TreeType)3 NodeUtil (org.apache.jackrabbit.oak.util.NodeUtil)3 Field (java.lang.reflect.Field)2 AuthorizationConfiguration (org.apache.jackrabbit.oak.spi.security.authorization.AuthorizationConfiguration)2 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 CheckForNull (javax.annotation.CheckForNull)1