private NodeUtil createAcl() throws AccessDeniedException { NodeUtil testRoot = getTestRoot(); testRoot.setNames(JcrConstants.JCR_MIXINTYPES, MIX_REP_ACCESS_CONTROLLABLE); NodeUtil acl = testRoot.addChild(REP_POLICY, NT_REP_ACL); NodeUtil ace = createACE(acl, aceName, NT_REP_GRANT_ACE, testPrincipal.getName(), PrivilegeConstants.JCR_READ); ace.addChild(REP_RESTRICTIONS, NT_REP_RESTRICTIONS); return acl; }
private Tree getAceTree(Restriction... restrictions) throws Exception { NodeUtil rootNode = new NodeUtil(root.getTree("/")); NodeUtil tmp = rootNode.addChild("testRoot", JcrConstants.NT_UNSTRUCTURED); Tree ace = tmp.addChild("rep:policy", NT_REP_ACL).addChild("ace0", NT_REP_GRANT_ACE).getTree(); restrictionProvider.writeRestrictions(tmp.getTree().getPath(), ace, ImmutableSet.copyOf(restrictions)); return ace; }
@Test public void testGetTokenInfoFromRegularNode() throws Exception { NodeUtil node = new NodeUtil(root.getTree("/")).addChild("testNode", JcrConstants.NT_UNSTRUCTURED); NodeUtil parent = node.addChild(TokenConstants.TOKENS_NODE_NAME, TokenConstants.TOKENS_NT_NAME); NodeUtil tokenNode = parent.addChild("tokenName", TokenConstants.TOKEN_NT_NAME); String tokenUUID = UUID.randomUUID().toString(); tokenNode.setString(JcrConstants.JCR_UUID, tokenUUID); String token = tokenUUID + "_generatedKey"; tokenNode.setString(TokenConstants.TOKEN_ATTRIBUTE_KEY, token); assertNull(tokenProvider.getTokenInfo(token)); }
@Before public void setUp() throws Exception { Tree tree = root.getTree("/"); NodeUtil node = new NodeUtil(tree); node.addChild("x", JcrConstants.NT_UNSTRUCTURED).addChild("y", JcrConstants.NT_UNSTRUCTURED).addChild("z", JcrConstants.NT_UNSTRUCTURED); Tree orderable = node.addChild("orderable", JcrConstants.NT_UNSTRUCTURED).getTree(); orderable.setOrderableChildren(true); root.commit(); immutable = new ImmutableTree(((AbstractTree) root.getTree("/")).getNodeState()); }
static void createCug(@NotNull Root root, @NotNull String path, @NotNull String principalName) throws RepositoryException { Tree tree = root.getTree(path); Preconditions.checkState(tree.exists()); TreeUtil.addMixin(tree, MIX_REP_CUG_MIXIN, root.getTree(NODE_TYPES_PATH), null); new NodeUtil(tree).addChild(REP_CUG_POLICY, NT_REP_CUG_POLICY).setStrings(REP_PRINCIPAL_NAMES, principalName); }
@NotNull Tree createTokenTree(@NotNull TokenInfo base, @NotNull NodeUtil parent, @NotNull String ntName) throws AccessDeniedException { Tree tokenTree = getTokenTree(base); Tree tree = parent.addChild("token", ntName).getTree(); tree.setProperty(tokenTree.getProperty(JcrConstants.JCR_UUID)); tree.setProperty(tokenTree.getProperty(TOKEN_ATTRIBUTE_KEY)); tree.setProperty(tokenTree.getProperty(TOKEN_ATTRIBUTE_EXPIRY)); return tree; } }
@Before @Override public void before() throws Exception { super.before(); NodeUtil rootNode = new NodeUtil(root.getTree("/")); testRootNode = rootNode.addChild("testRoot", NT_UNSTRUCTURED); testRootNode.addChild("child", NT_UNSTRUCTURED); root.commit(); testPrincipal = getTestUser().getPrincipal(); }
@Test public void testNotIsDeclaredMemberMissingMembersProperty() throws Exception { Tree grTree = getTree(createGroup()); Tree memberTree = getTree(createUser()); NodeUtil memberList = new NodeUtil(grTree).addChild(REP_MEMBERS_LIST, NT_REP_MEMBER_REFERENCES_LIST); memberList.addChild("member1", NT_REP_MEMBER_REFERENCES).setStrings(REP_MEMBERS, getContentID("another")); assertFalse(mp.isDeclaredMember(grTree, memberTree)); }
@Test public void testIsDeclaredMemberMissingMembersProperty() throws Exception { Tree grTree = getTree(createGroup()); Tree memberTree = getTree(createUser()); NodeUtil memberList = new NodeUtil(grTree).addChild(REP_MEMBERS_LIST, NT_REP_MEMBER_REFERENCES_LIST); memberList.addChild("member1", NT_REP_MEMBER_REFERENCES).setStrings(REP_MEMBERS, getContentID(memberTree)); assertTrue(mp.isDeclaredMember(grTree, memberTree)); }
@Test public void testManuallyCreateTokenParent() throws Exception { Tree userTree = root.getTree(getUserManager(root).getAuthorizable(userId).getPath()); NodeUtil node = new NodeUtil(userTree); node.addChild(TOKENS_NODE_NAME, TOKENS_NT_NAME); root.commit(); }
@Test(expected = AccessControlException.class) public void testRemoveInvalidCugNode() throws Exception { Tree supportedTree = root.getTree(SUPPORTED_PATH); new NodeUtil(supportedTree).addChild(REP_CUG_POLICY, NodeTypeConstants.NT_OAK_UNSTRUCTURED); cugAccessControlManager.removePolicy(SUPPORTED_PATH, new CugPolicyImpl(SUPPORTED_PATH, NamePathMapper.DEFAULT, getPrincipalManager(root), ImportBehavior.BESTEFFORT, getExclude())); }
@Before public void before() throws Exception { super.before(); testPrincipal = getTestUser().getPrincipal(); NodeUtil rootNode = new NodeUtil(root.getTree("/"), namePathMapper); NodeUtil testNode = rootNode.addChild("testPath", JcrConstants.NT_UNSTRUCTURED); testNode.addChild("childNode", JcrConstants.NT_UNSTRUCTURED); addAcl(testPath, EveryonePrincipal.getInstance()); addAcl(childPath, EveryonePrincipal.getInstance()); root.commit(); permissionStore = new PermissionStoreImpl(root, root.getContentSession().getWorkspaceName(), getConfig(AuthorizationConfiguration.class).getRestrictionProvider()); }
@Before public void before() throws Exception { super.before(); NodeUtil rootNode = new NodeUtil(root.getTree("/"), getNamePathMapper()); rootNode.addChild(testName, JcrConstants.NT_UNSTRUCTURED); root.commit(); testPrincipal = getTestUser().getPrincipal(); }
@Test public void testNotMatchesItem() throws Exception { NodeUtil rootTree = new NodeUtil(root.getTree("/")); List<String> notMatching = ImmutableList.of(NodeTypeConstants.NT_OAK_RESOURCE, NodeTypeConstants.NT_OAK_UNSTRUCTURED, JcrConstants.NT_VERSION); for (String ntName : notMatching) { Tree testTree = rootTree.addChild("name", ntName).getTree(); assertFalse(pattern.matches(testTree, null)); assertFalse(pattern.matches(testTree, PropertyStates.createProperty("a", Boolean.FALSE))); assertFalse(pattern.matches(testTree, PropertyStates.createProperty("f", "anyval"))); testTree.remove(); } }
@Test public void testWriteRestrictions() throws Exception { NodeUtil aceNode = new NodeUtil(root.getTree("/")).addChild("test", NT_REP_GRANT_ACE); Set<Restriction> restrictions = ImmutableSet.of( provider.createRestriction("/test","boolean", vf.createValue(true)), provider.createRestriction("/test", "longs"), provider.createRestriction("/test", REP_GLOB, vf.createValue("*")), provider.createRestriction("/test", REP_NT_NAMES, vf.createValue("nt:base", PropertyType.NAME), vf.createValue("nt:version", PropertyType.NAME))); provider.writeRestrictions("/test", aceNode.getTree(), restrictions); }
@Test public void testHasCug() throws Exception { assertTrue(CugUtil.hasCug(root.getTree(SUPPORTED_PATH))); for (String path : new String[] {PathUtils.ROOT_PATH, INVALID_PATH, UNSUPPORTED_PATH, SUPPORTED_PATH + "/subtree", SUPPORTED_PATH2, SUPPORTED_PATH3}) { assertFalse(CugUtil.hasCug(root.getTree(path))); } new NodeUtil(root.getTree(SUPPORTED_PATH2)).addChild(REP_CUG_POLICY, NodeTypeConstants.NT_OAK_UNSTRUCTURED).getTree(); assertTrue(CugUtil.hasCug(root.getTree(SUPPORTED_PATH2))); }
@Test public void testMatchesItem() throws Exception { NodeUtil rootTree = new NodeUtil(root.getTree("/")); for (String ntName : ntNames) { Tree testTree = rootTree.addChild("name", ntName).getTree(); assertTrue(pattern.matches(testTree, null)); assertTrue(pattern.matches(testTree, PropertyStates.createProperty("a", Boolean.FALSE))); assertTrue(pattern.matches(testTree, PropertyStates.createProperty("f", "anyval"))); testTree.remove(); } }
@Test public void testDefinesCug() throws Exception { assertFalse(CugUtil.definesCug(root.getTree(PathUtils.concat(INVALID_PATH, REP_CUG_POLICY)))); assertTrue(CugUtil.definesCug(root.getTree(PathUtils.concat(SUPPORTED_PATH, REP_CUG_POLICY)))); Tree invalid = new NodeUtil(root.getTree(SUPPORTED_PATH2)).addChild(REP_CUG_POLICY, NodeTypeConstants.NT_OAK_UNSTRUCTURED).getTree(); assertFalse(CugUtil.definesCug(invalid)); }
@Test public void testHasCugNodeState() throws Exception { assertTrue(CugUtil.hasCug(getNodeState(root.getTree(SUPPORTED_PATH)))); assertFalse(CugUtil.hasCug((NodeState) null)); for (String path : new String[] {PathUtils.ROOT_PATH, INVALID_PATH, UNSUPPORTED_PATH, SUPPORTED_PATH + "/subtree", SUPPORTED_PATH2, SUPPORTED_PATH3}) { assertFalse(CugUtil.hasCug(getNodeState(root.getTree(path)))); } new NodeUtil(root.getTree(SUPPORTED_PATH2)).addChild(REP_CUG_POLICY, NodeTypeConstants.NT_OAK_UNSTRUCTURED); assertTrue(CugUtil.hasCug(getNodeState(root.getTree(SUPPORTED_PATH2)))); }
@Test public void testHasCugNodeBuilder() throws Exception { assertTrue(CugUtil.hasCug(getNodeState(root.getTree(SUPPORTED_PATH)).builder())); assertFalse(CugUtil.hasCug((NodeBuilder) null)); for (String path : new String[] {PathUtils.ROOT_PATH, INVALID_PATH, UNSUPPORTED_PATH, SUPPORTED_PATH + "/subtree", SUPPORTED_PATH2, SUPPORTED_PATH3}) { assertFalse(CugUtil.hasCug(getNodeState(root.getTree(path)).builder())); } new NodeUtil(root.getTree(SUPPORTED_PATH2)).addChild(REP_CUG_POLICY, NodeTypeConstants.NT_OAK_UNSTRUCTURED); assertTrue(CugUtil.hasCug(getNodeState(root.getTree(SUPPORTED_PATH2)).builder())); }