• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java AccessControlManager类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中javax.jcr.security.AccessControlManager的典型用法代码示例。如果您正苦于以下问题:Java AccessControlManager类的具体用法?Java AccessControlManager怎么用?Java AccessControlManager使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



AccessControlManager类属于javax.jcr.security包,在下文中一共展示了AccessControlManager类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: after

import javax.jcr.security.AccessControlManager; //导入依赖的package包/类
@Override
public void after() throws Exception {
    try {
        if (testSession != null) {
            testSession.close();
        }
        AccessControlManager acMgr = getAccessControlManager(root);
        JackrabbitAccessControlList  acl = AccessControlUtils.getAccessControlList(acMgr, "/");
        if (acl != null) {
            for (AccessControlEntry ace : acl.getAccessControlEntries()) {
                if (getTestUser().getPrincipal().equals(ace.getPrincipal())) {
                    acl.removeAccessControlEntry(ace);
                }
            }
        }
        acMgr.setPolicy("/", acl);
        root.commit();
    } finally {
        super.after();
    }
}
 
开发者ID:denismo,项目名称:jackrabbit-dynamodb-store,代码行数:22,代码来源:PermissionStoreTest.java


示例2: createPrivileges

import javax.jcr.security.AccessControlManager; //导入依赖的package包/类
public List<Privilege> createPrivileges(final AccessControlManager accessControlManager,
		final List<String> permissions) throws RepositoryException, PermissionException {
	final List<Privilege> privileges = new ArrayList<>();
	final List<String> unknownPermissions = new ArrayList<>();
	for (final String permission : permissions) {
		try {
			privileges.addAll(createPrivileges(accessControlManager, permission));
		} catch (PermissionException e) {
			unknownPermissions.add(permission);
		}
	}
	if (!unknownPermissions.isEmpty()) {
		throw new PermissionException(MessagingUtils.unknownPermissions(unknownPermissions));
	}

	return privileges;
}
 
开发者ID:Cognifide,项目名称:APM,代码行数:18,代码来源:PermissionActionHelper.java


示例3: testCanReadProperties2

import javax.jcr.security.AccessControlManager; //导入依赖的package包/类
@Test
public void testCanReadProperties2() throws Exception {
    AccessControlManager acMgr = getAccessControlManager(root);
    JackrabbitAccessControlList acl = AccessControlUtils.getAccessControlList(acMgr, "/test");
    acl.addEntry(getTestUser().getPrincipal(), privilegesFromNames(PrivilegeConstants.JCR_READ), true);
    acMgr.setPolicy("/test", acl);
    root.commit();

    Tree policyTree = root.getTree("/test/rep:policy");
    NodeUtil ace = new NodeUtil(policyTree).addChild("ace2", NT_REP_DENY_ACE);
    ace.setNames(REP_PRIVILEGES, PrivilegeConstants.REP_READ_PROPERTIES);
    ace.setString(REP_PRINCIPAL_NAME, getTestUser().getPrincipal().getName());
    root.commit();

    TreePermission tp = getTreePermission("/test");

    assertFalse(tp.canReadProperties());
    assertTrue(tp.canRead());
    assertFalse(tp.canReadProperties());
}
 
开发者ID:denismo,项目名称:jackrabbit-dynamodb-store,代码行数:21,代码来源:TreePermissionImplTest.java


示例4: before

import javax.jcr.security.AccessControlManager; //导入依赖的package包/类
@Override
@Before
public void before() throws Exception {
    super.before();

    Principal testPrincipal = getTestPrincipal();
    NodeUtil rootNode = new NodeUtil(root.getTree("/"), namePathMapper);
    NodeUtil testNode = rootNode.addChild("testPath", JcrConstants.NT_UNSTRUCTURED);
    testNode.addChild("childNode", JcrConstants.NT_UNSTRUCTURED);

    AccessControlManager acMgr = getAccessControlManager(root);
    JackrabbitAccessControlList acl = AccessControlUtils.getAccessControlList(acMgr, testPath);
    acl.addAccessControlEntry(testPrincipal, privilegesFromNames(JCR_ADD_CHILD_NODES));
    acl.addAccessControlEntry(EveryonePrincipal.getInstance(), privilegesFromNames(JCR_READ));
    acMgr.setPolicy(testPath, acl);
    root.commit();

    testPrincipalName = testPrincipal.getName();
    bitsProvider = new PrivilegeBitsProvider(root);
}
 
开发者ID:denismo,项目名称:jackrabbit-dynamodb-store,代码行数:21,代码来源:PermissionHookTest.java


示例5: after

import javax.jcr.security.AccessControlManager; //导入依赖的package包/类
@After
@Override
public void after() throws Exception {
    try {
        // clean up policies at the root node
        AccessControlManager acMgr = getAccessControlManager(root);
        AccessControlPolicy[] policies = acMgr.getPolicies("/");
        for (AccessControlPolicy policy : policies) {
            acMgr.removePolicy("/", policy);
        }

        // remove all test content
        root.getTree("/a").remove();
        root.commit();

        // release test session
        if (testSession != null) {
            testSession.close();
        }
    } finally {
        super.after();
    }
}
 
开发者ID:denismo,项目名称:jackrabbit-dynamodb-store,代码行数:24,代码来源:AbstractOakCoreTest.java


示例6: after

import javax.jcr.security.AccessControlManager; //导入依赖的package包/类
@Override
@After
public void after() throws Exception {
    try {
        AccessControlManager acMgr = getAccessControlManager(root);
        JackrabbitAccessControlList acl = AccessControlUtils.getAccessControlList(acMgr, "/");
        if (acl != null) {
            boolean modified = false;
            for (AccessControlEntry entry : acl.getAccessControlEntries()) {
                if (entry.getPrincipal().equals(getTestUser().getPrincipal())) {
                    acl.removeAccessControlEntry(entry);
                    modified = true;
                }
            }
            if (modified) {
                acMgr.setPolicy("/", acl);
                root.commit();
            }
        }
    } finally {
        super.after();
    }
}
 
开发者ID:denismo,项目名称:jackrabbit-dynamodb-store,代码行数:24,代码来源:Jr2CompatibilityTest.java


示例7: testRemoveNodeWithJr2Flag

import javax.jcr.security.AccessControlManager; //导入依赖的package包/类
@Test
public void testRemoveNodeWithJr2Flag() throws Exception {
    /* allow READ/WRITE privilege for testUser at 'path' */
    setupPermission("/a", testPrincipal, true, PrivilegeConstants.JCR_READ, PrivilegeConstants.REP_WRITE);
    /* deny REMOVE_NODE privilege at subtree. */
    setupPermission("/a/b", testPrincipal, false, PrivilegeConstants.JCR_REMOVE_NODE);

    Root testRoot = getTestRoot();
    AccessControlManager acMgr = getAccessControlManager(testRoot);
    assertTrue(acMgr.hasPrivileges("/a", privilegesFromNames(PrivilegeConstants.REP_WRITE)));
    assertFalse(acMgr.hasPrivileges("/a/b", privilegesFromNames(PrivilegeConstants.JCR_REMOVE_NODE)));

    // removing the tree must fail
    try {
        testRoot.getTree("/a").remove();
        testRoot.commit();
        fail();
    } catch (CommitFailedException e) {
        // success
        assertTrue(e.isAccessViolation());
    }
}
 
开发者ID:denismo,项目名称:jackrabbit-dynamodb-store,代码行数:23,代码来源:Jr2CompatibilityTest.java


示例8: testRemoveNodeWithJr2Flag2

import javax.jcr.security.AccessControlManager; //导入依赖的package包/类
@Test
public void testRemoveNodeWithJr2Flag2() throws Exception {
    /* allow READ/WRITE privilege for testUser at 'path' */
    setupPermission("/a", testPrincipal, true, PrivilegeConstants.JCR_READ, PrivilegeConstants.REP_WRITE);
    /* deny REP_REMOVE_PROPERTIES privilege at subtree. */
    setupPermission("/a/b", testPrincipal, false, PrivilegeConstants.REP_REMOVE_PROPERTIES);

    Root testRoot = getTestRoot();
    AccessControlManager acMgr = getAccessControlManager(testRoot);
    assertTrue(acMgr.hasPrivileges("/a", privilegesFromNames(PrivilegeConstants.REP_WRITE)));
    assertFalse(acMgr.hasPrivileges("/a/b", privilegesFromNames(PrivilegeConstants.REP_REMOVE_PROPERTIES)));

    // removing the tree must fail
    try {
        testRoot.getTree("/a").remove();
        testRoot.commit();
        fail();
    } catch (CommitFailedException e) {
        // success
        assertTrue(e.isAccessViolation());
    }
}
 
开发者ID:denismo,项目名称:jackrabbit-dynamodb-store,代码行数:23,代码来源:Jr2CompatibilityTest.java


示例9: testDuplicateAce

import javax.jcr.security.AccessControlManager; //导入依赖的package包/类
@Test
public void testDuplicateAce() throws Exception {
    AccessControlManager acMgr = getAccessControlManager(root);
    JackrabbitAccessControlList acl = org.apache.jackrabbit.commons.jackrabbit.authorization.AccessControlUtils.getAccessControlList(acMgr, testPath);
    acl.addAccessControlEntry(testPrincipal, privilegesFromNames(PrivilegeConstants.JCR_ADD_CHILD_NODES));
    acMgr.setPolicy(testPath, acl);

    // add duplicate ac-entry on OAK-API
    NodeUtil policy = new NodeUtil(root.getTree(testPath + "/rep:policy"));
    NodeUtil ace = policy.addChild("duplicateAce", NT_REP_GRANT_ACE);
    ace.setString(REP_PRINCIPAL_NAME, testPrincipal.getName());
    ace.setStrings(AccessControlConstants.REP_PRIVILEGES, PrivilegeConstants.JCR_ADD_CHILD_NODES);

    try {
        root.commit();
        fail("Creating duplicate ACE must be detected");
    } catch (CommitFailedException e) {
        assertTrue(e.isAccessControlViolation());
    }
}
 
开发者ID:denismo,项目名称:jackrabbit-dynamodb-store,代码行数:21,代码来源:AccessControlValidatorTest.java


示例10: testGetSupportedPrivilegesIncludingPathConversion

import javax.jcr.security.AccessControlManager; //导入依赖的package包/类
@Test
public void testGetSupportedPrivilegesIncludingPathConversion() throws Exception {
    List<Privilege> allPrivileges = Arrays.asList(getPrivilegeManager(root).getRegisteredPrivileges());

    List<String> testPaths = new ArrayList<String>();
    testPaths.add('/' + TEST_LOCAL_PREFIX + ":testRoot");
    testPaths.add("/{" + TEST_URI + "}testRoot");

    NameMapper remapped = new LocalNameMapper(
            root, singletonMap(TEST_LOCAL_PREFIX, TEST_URI));

    AccessControlManager acMgr =
            getAccessControlManager(new NamePathMapperImpl(remapped));
    for (String path : testPaths) {
        Privilege[] supported = acMgr.getSupportedPrivileges(path);

        assertNotNull(supported);
        assertEquals(allPrivileges.size(), supported.length);
        assertTrue(allPrivileges.containsAll(Arrays.asList(supported)));
    }
}
 
开发者ID:denismo,项目名称:jackrabbit-dynamodb-store,代码行数:22,代码来源:AccessControlManagerImplTest.java


示例11: testTestSessionGetEffectivePolicies

import javax.jcr.security.AccessControlManager; //导入依赖的package包/类
/**
 * @since OAK 1.0
 */
@Test
public void testTestSessionGetEffectivePolicies() throws Exception {
    // grant 'testUser' READ + READ_AC privileges at 'path'
    Privilege[] privileges = privilegesFromNames(PrivilegeConstants.JCR_READ, PrivilegeConstants.JCR_READ_ACCESS_CONTROL);
    setupPolicy(testPath, privileges);
    root.commit();

    Root testRoot = getTestRoot();
    testRoot.refresh();
    AccessControlManager testAcMgr = getTestAccessControlManager();

    assertTrue(testAcMgr.hasPrivileges(testPath, privileges));

    // diff to jr core: getEffectivePolicies will just return the policies
    // accessible for the editing session but not throw an exception.
    AccessControlPolicy[] effective = testAcMgr.getEffectivePolicies(testPath);
    assertNotNull(effective);
    assertEquals(1, effective.length);
}
 
开发者ID:denismo,项目名称:jackrabbit-dynamodb-store,代码行数:23,代码来源:AccessControlManagerImplTest.java


示例12: testTestSessionGetEffectivePolicies2

import javax.jcr.security.AccessControlManager; //导入依赖的package包/类
/**
 * @since OAK 1.0
 */
@Test
public void testTestSessionGetEffectivePolicies2() throws Exception {
    NodeUtil child = new NodeUtil(root.getTree(testPath)).addChild("child", JcrConstants.NT_UNSTRUCTURED);
    String childPath = child.getTree().getPath();

    setupPolicy(testPath, privilegesFromNames(PrivilegeConstants.JCR_READ));
    setupPolicy(childPath, privilegesFromNames(PrivilegeConstants.JCR_READ_ACCESS_CONTROL));
    root.commit();

    Root testRoot = getTestRoot();
    testRoot.refresh();
    AccessControlManager testAcMgr = getTestAccessControlManager();

    assertTrue(testAcMgr.hasPrivileges(childPath, privilegesFromNames(PrivilegeConstants.JCR_READ, PrivilegeConstants.JCR_READ_ACCESS_CONTROL)));

    // diff to jr core: getEffectivePolicies will just return the policies
    // accessible for the editing session but not throw an exception.
    AccessControlPolicy[] effective = testAcMgr.getEffectivePolicies(childPath);
    assertNotNull(effective);
    assertEquals(1, effective.length);
}
 
开发者ID:denismo,项目名称:jackrabbit-dynamodb-store,代码行数:25,代码来源:AccessControlManagerImplTest.java


示例13: testTestSessionGetEffectivePoliciesWithoutPrivilege

import javax.jcr.security.AccessControlManager; //导入依赖的package包/类
@Test
public void testTestSessionGetEffectivePoliciesWithoutPrivilege() throws Exception {
    // grant 'testUser' READ + READ_AC privileges at 'path'
    Privilege[] privileges = privilegesFromNames(PrivilegeConstants.JCR_READ);
    setupPolicy(testPath, privileges);
    root.commit();

    Root testRoot = getTestRoot();
    testRoot.refresh();
    AccessControlManager testAcMgr = getTestAccessControlManager();

    List<String> paths = ImmutableList.of(testPath, NodeTypeConstants.NODE_TYPES_PATH);
    for (String path : paths) {
        assertFalse(testAcMgr.hasPrivileges(path, privilegesFromNames(PrivilegeConstants.JCR_READ_ACCESS_CONTROL)));
        try {
            testAcMgr.getEffectivePolicies(path);
            fail("READ_ACCESS_CONTROL is not granted at " + path);
        } catch (AccessDeniedException e) {
            // success
        }
    }
}
 
开发者ID:denismo,项目名称:jackrabbit-dynamodb-store,代码行数:23,代码来源:AccessControlManagerImplTest.java


示例14: getEnhancedMockResolver

import javax.jcr.security.AccessControlManager; //导入依赖的package包/类
private ResourceResolver getEnhancedMockResolver() throws RepositoryException, LoginException {
    ResourceResolver rr = getFreshMockResolver();
    
    when(rr.hasChanges()).thenReturn(true);

    AbstractResourceImpl mockFolderA = new AbstractResourceImpl("/content/folderA", "", "", new ResourceMetadata());
    when(rr.getResource("/content/folderA")).thenReturn(mockFolderA);
    AbstractResourceImpl mockFolderB = new AbstractResourceImpl("/content/folderB", "", "", new ResourceMetadata());
    when(rr.getResource("/content/folderB")).thenReturn(mockFolderB);
    AbstractResourceImpl mockFolder = new AbstractResourceImpl("/content", "", "", new ResourceMetadata());
    when(rr.getResource("/content")).thenReturn(mockFolder);
    mockFolder.addChild(mockFolderA);
    mockFolder.addChild(mockFolderB);

    Session ses = mock(Session.class);
    when(rr.adaptTo(Session.class)).thenReturn(ses);
    AccessControlManager acm = mock(AccessControlManager.class);
    when(ses.getAccessControlManager()).thenReturn(acm);
    when(acm.privilegeFromName(any())).thenReturn(mock(Privilege.class));

    return rr;
}
 
开发者ID:Adobe-Consulting-Services,项目名称:acs-aem-commons,代码行数:23,代码来源:FolderRelocatorTest.java


示例15: testUpdateDenied

import javax.jcr.security.AccessControlManager; //导入依赖的package包/类
@Test(expected = AccessDeniedException.class)
public void testUpdateDenied() throws RepositoryException {
    final FedoraResource object =
            containerService.findOrCreate(session, "/testRefObject");
    try {
        object.updateProperties(
                subjects,
                "INSERT { <> <http://purl.org/dc/elements/1.1/title> \"test-original\". }"
                        + " WHERE { }", object.getTriples(subjects, emptySet()));
    } catch (final AccessDeniedException e) {
        fail("Should fail at update, not create property");
    }
    final Session jcrSession = getJcrSession(session);
    final AccessControlManager acm = jcrSession.getAccessControlManager();
    final Privilege[] permissions = new Privilege[] {acm.privilegeFromName(Privilege.JCR_READ)};
    final AccessControlList acl = (AccessControlList) acm.getApplicablePolicies("/testRefObject").next();
    acl.addAccessControlEntry(SimplePrincipal.newInstance("anonymous"), permissions);
    acm.setPolicy("/testRefObject", acl);
    session.commit();

    object.updateProperties(
            subjects,
            "INSERT { <> <http://purl.org/dc/elements/1.1/title> \"test-update\". }"
                    + " WHERE { }", object.getTriples(subjects, emptySet()));
}
 
开发者ID:fcrepo4,项目名称:fcrepo4,代码行数:26,代码来源:FedoraResourceImplIT.java


示例16: getModifiableAcl

import javax.jcr.security.AccessControlManager; //导入依赖的package包/类
public static JackrabbitAccessControlList getModifiableAcl(final AccessControlManager accessManager,
		final String path) throws RepositoryException {
	final JackrabbitAccessControlList acl = getAccessControlList(accessManager, path);
	if (null != acl) {
		return acl;
	}

	final JackrabbitAccessControlList applicableAcl = getApplicableAccessControlList(accessManager, path);
	if (null != applicableAcl) {
		return applicableAcl;
	}

	throw new AccessControlException("No modifiable ACL at " + path);
}
 
开发者ID:Cognifide,项目名称:APM,代码行数:15,代码来源:JackrabbitAccessControlListUtil.java


示例17: getApplicableAccessControlList

import javax.jcr.security.AccessControlManager; //导入依赖的package包/类
public static JackrabbitAccessControlList getApplicableAccessControlList(
		final AccessControlManager accessManager, final String path) throws RepositoryException {
	// find policies which may be applied to node indicated by path (may be treated as policy factory)
	final AccessControlPolicyIterator applicablePolicies = accessManager.getApplicablePolicies(path);
	while (applicablePolicies.hasNext()) {
		final AccessControlPolicy policy = applicablePolicies.nextAccessControlPolicy();
		if (policy instanceof JackrabbitAccessControlList) {
			return (JackrabbitAccessControlList) policy;
		}
	}
	return null;
}
 
开发者ID:Cognifide,项目名称:APM,代码行数:13,代码来源:JackrabbitAccessControlListUtil.java


示例18: getAccessControlList

import javax.jcr.security.AccessControlManager; //导入依赖的package包/类
public static JackrabbitAccessControlList getAccessControlList(final AccessControlManager accessManager,
		final String path) throws RepositoryException {
	final AccessControlPolicy[] existing = accessManager.getPolicies(path);
	for (final AccessControlPolicy policy : existing) {
		if (policy instanceof JackrabbitAccessControlList) {
			return (JackrabbitAccessControlList) policy;
		}
	}
	return null;
}
 
开发者ID:Cognifide,项目名称:APM,代码行数:11,代码来源:JackrabbitAccessControlListUtil.java


示例19: updateAccessControlList

import javax.jcr.security.AccessControlManager; //导入依赖的package包/类
private void updateAccessControlList(boolean allow, final AccessControlManager accessControlManager,
		final List<Privilege> privileges, final Principal principal) throws RepositoryException {
	final JackrabbitAccessControlList jackrabbitAcl = JackrabbitAccessControlListUtil
			.getModifiableAcl(accessControlManager, path);

	if (StringUtils.isBlank(glob)) {
		addNormalEntry(allow, privileges, principal, jackrabbitAcl);
	} else {
		addGlobEntry(allow, privileges, principal, jackrabbitAcl);
	}

	accessControlManager.setPolicy(path, jackrabbitAcl);
}
 
开发者ID:Cognifide,项目名称:APM,代码行数:14,代码来源:PermissionActionHelper.java


示例20: removeAll

import javax.jcr.security.AccessControlManager; //导入依赖的package包/类
private void removeAll(final Context context, Authorizable authorizable) throws RepositoryException {
	final AccessControlManager accessControlManager = context.getAccessControlManager();
	final Principal principal = authorizable.getPrincipal();

	final JackrabbitAccessControlList jackrabbitAcl = JackrabbitAccessControlListUtil
			.getModifiableAcl(accessControlManager, path);
	final AccessControlEntry[] accessControlEntries = jackrabbitAcl.getAccessControlEntries();
	for (final AccessControlEntry accessControlEntry : accessControlEntries) {
		if (accessControlEntry.getPrincipal().equals(principal)) {
			jackrabbitAcl.removeAccessControlEntry(accessControlEntry);
		}
	}
	accessControlManager.setPolicy(path, jackrabbitAcl);
}
 
开发者ID:Cognifide,项目名称:APM,代码行数:15,代码来源:RemoveAll.java



注:本文中的javax.jcr.security.AccessControlManager类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java Lang类代码示例发布时间:2022-05-22
下一篇:
Java SAXParserFactoryImpl类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap