Search in sources :

Example 11 with TreePermission

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

the class VersionTreePermissionTest method testVersionableChildRemoved2.

@Test
public void testVersionableChildRemoved2() throws Exception {
    root.getTree("/test/a/b").remove();
    root.commit();
    pp.refresh();
    Tree versionHistory = checkNotNull(vMgr.getVersionHistory(testTree));
    String frozenAPath = PathUtils.concat(versionHistory.getPath(), "1.0", JCR_FROZENNODE, "a");
    TreePermission tp = getVersionPermission(root, pp, frozenAPath);
    assertVersionPermission(tp, "/test/a", true);
    Tree frozenB = root.getTree(frozenAPath).getChild("b");
    tp = pp.getTreePermission(frozenB, tp);
    assertVersionPermission(tp, "/test/a/b", true);
    Tree frozenC = frozenB.getChild("c");
    tp = pp.getTreePermission(frozenC, tp);
    assertVersionPermission(tp, "/test/a/b/c", true);
}
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) AbstractSecurityTest(org.apache.jackrabbit.oak.AbstractSecurityTest) Test(org.junit.Test)

Example 12 with TreePermission

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

the class RepoPolicyTreePermissionTest method testCanRead2.

@Test
public void testCanRead2() throws Exception {
    TreePermission tp = getTreePermission(noAccessSession, REPO_POLICY_PATH);
    assertFalse(tp.canRead());
}
Also used : TreePermission(org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission) AbstractSecurityTest(org.apache.jackrabbit.oak.AbstractSecurityTest) Test(org.junit.Test)

Example 13 with TreePermission

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

the class RepoPolicyTreePermissionTest method testIsGranted2.

@Test
public void testIsGranted2() throws Exception {
    TreePermission tp = getTreePermission(noAccessSession, REPO_POLICY_PATH);
    assertFalse(tp.isGranted(Permissions.NAMESPACE_MANAGEMENT));
    assertFalse(tp.isGranted(Permissions.WORKSPACE_MANAGEMENT));
    assertFalse(tp.isGranted(Permissions.NAMESPACE_MANAGEMENT | Permissions.WORKSPACE_MANAGEMENT));
}
Also used : TreePermission(org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission) AbstractSecurityTest(org.apache.jackrabbit.oak.AbstractSecurityTest) Test(org.junit.Test)

Example 14 with TreePermission

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

the class VersionTest method testTreePermissionVersionableUnsupportedPath.

@Test
public void testTreePermissionVersionableUnsupportedPath() throws Exception {
    Tree versionable = root.getTree(UNSUPPORTED_PATH);
    Tree vh = checkNotNull(versionManager.getVersionHistory(versionable));
    CugPermissionProvider pp = createCugPermissionProvider(ImmutableSet.of(SUPPORTED_PATH, SUPPORTED_PATH2));
    Tree t = root.getTree("/");
    TreePermission tp = pp.getTreePermission(t, TreePermission.EMPTY);
    for (String segm : PathUtils.elements(vh.getPath())) {
        t = t.getChild(segm);
        tp = pp.getTreePermission(t, tp);
        if (JCR_SYSTEM.equals(segm) || ReadOnlyVersionManager.isVersionStoreTree(t)) {
            assertTrue(t.getPath(), tp instanceof EmptyCugTreePermission);
        } else {
            assertSame(t.getPath(), TreePermission.NO_RECOURSE, tp);
        }
    }
}
Also used : Tree(org.apache.jackrabbit.oak.api.Tree) TreePermission(org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission) Test(org.junit.Test)

Example 15 with TreePermission

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

the class EmptyCugTreePermissionTest method testJcrSystemPermissions.

@Test
public void testJcrSystemPermissions() throws Exception {
    NodeState system = rootState.getChildNode(JcrConstants.JCR_SYSTEM);
    TreePermission systemTp = tp.getChildPermission(JcrConstants.JCR_SYSTEM, system);
    assertCugPermission(systemTp, false);
    assertCugPermission(pp.getTreePermission(root.getTree("/jcr:system"), tp), false);
    NodeState versionStore = system.getChildNode(VersionConstants.JCR_VERSIONSTORAGE);
    TreePermission versionStoreTp = systemTp.getChildPermission(VersionConstants.JCR_VERSIONSTORAGE, versionStore);
    assertCugPermission(versionStoreTp, false);
    assertCugPermission(pp.getTreePermission(root.getTree(VersionConstants.VERSION_STORE_PATH), systemTp), false);
    NodeState nodeTypes = system.getChildNode(NodeTypeConstants.JCR_NODE_TYPES);
    TreePermission nodeTypesTp = systemTp.getChildPermission(NodeTypeConstants.JCR_NODE_TYPES, nodeTypes);
    assertSame(TreePermission.NO_RECOURSE, nodeTypesTp);
}
Also used : NodeState(org.apache.jackrabbit.oak.spi.state.NodeState) 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