当前位置: 首页>>代码示例>>Java>>正文


Java JackrabbitAccessControlList.removeAccessControlEntry方法代码示例

本文整理汇总了Java中org.apache.jackrabbit.api.security.JackrabbitAccessControlList.removeAccessControlEntry方法的典型用法代码示例。如果您正苦于以下问题:Java JackrabbitAccessControlList.removeAccessControlEntry方法的具体用法?Java JackrabbitAccessControlList.removeAccessControlEntry怎么用?Java JackrabbitAccessControlList.removeAccessControlEntry使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.jackrabbit.api.security.JackrabbitAccessControlList的用法示例。


在下文中一共展示了JackrabbitAccessControlList.removeAccessControlEntry方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: after

import org.apache.jackrabbit.api.security.JackrabbitAccessControlList; //导入方法依赖的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: getACL

import org.apache.jackrabbit.api.security.JackrabbitAccessControlList; //导入方法依赖的package包/类
@CheckForNull
private JackrabbitAccessControlList getACL(Tree tree) throws RepositoryException {
    String nodeName = tree.getName();

    JackrabbitAccessControlList acl = null;
    if (!tree.isRoot()) {
        Tree parent = tree.getParent();
        if (AccessControlConstants.REP_POLICY.equals(nodeName)
                && ntMgr.isNodeType(tree, AccessControlConstants.NT_REP_ACL)) {
            acl = getACL(parent.getPath());
        } else if (AccessControlConstants.REP_REPO_POLICY.equals(nodeName)
                && ntMgr.isNodeType(tree, AccessControlConstants.NT_REP_ACL)
                && parent.isRoot()) {
            acl = getACL((String) null);
        }
    }

    if (acl != null) {
        // clear all existing entries
        for (AccessControlEntry ace: acl.getAccessControlEntries()) {
            acl.removeAccessControlEntry(ace);
        }
    }

    return acl;
}
 
开发者ID:denismo,项目名称:jackrabbit-dynamodb-store,代码行数:27,代码来源:AccessControlImporter.java

示例3: after

import org.apache.jackrabbit.api.security.JackrabbitAccessControlList; //导入方法依赖的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

示例4: removeAces

import org.apache.jackrabbit.api.security.JackrabbitAccessControlList; //导入方法依赖的package包/类
/**
 * Removes all ACEs for the Service User principal (except those that live beneath the System User's rep:User node)
 *
 * @param resourceResolver the resource resolver to perform the user management
 * @param systemUser       the System User the Service User represents
 * @param serviceUser      the Service User
 * @throws RepositoryException
 */
private void removeAces(ResourceResolver resourceResolver, User systemUser, ServiceUser serviceUser) throws RepositoryException {
    final Session session = resourceResolver.adaptTo(Session.class);

    final JackrabbitAccessControlManager accessControlManager = (JackrabbitAccessControlManager) session.getAccessControlManager();
    final List<JackrabbitAccessControlList> acls = findAcls(resourceResolver, serviceUser.getPrincipalName(), accessControlManager);

    for (final JackrabbitAccessControlList acl : acls) {
        final JackrabbitAccessControlEntry[] aces = (JackrabbitAccessControlEntry[]) acl.getAccessControlEntries();

        // Check all the existing ACEs in the ACL
        for (JackrabbitAccessControlEntry ace : aces) {
            if (StringUtils.equals(serviceUser.getPrincipalName(), ace.getPrincipal().getName())) {
                if (systemUser != null && StringUtils.startsWith(acl.getPath(), systemUser.getPath())) {
                    // Skip! Don't ensureRemoval ACE's from the system user itself!
                } else {
                    acl.removeAccessControlEntry(ace);
                }
            }
        }

        accessControlManager.setPolicy(acl.getPath(), acl);
        log.debug("Removed ACE from ACL at [ {} ] for [ {} ]", acl.getPath(), serviceUser.getPrincipalName());
    }
}
 
开发者ID:Adobe-Consulting-Services,项目名称:acs-aem-commons,代码行数:33,代码来源:EnsureServiceUser.java

示例5: removeAll

import org.apache.jackrabbit.api.security.JackrabbitAccessControlList; //导入方法依赖的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

示例6: testReorderAddAndRemoveAces2

import org.apache.jackrabbit.api.security.JackrabbitAccessControlList; //导入方法依赖的package包/类
/**
 * ACE    :  0   1   2   3   4   5   6   7
 * Before :  tp  ev  p0  p1  p2  p3
 * After  :      ev      p2  p1  p3  p4  p5
 */
@Test
public void testReorderAddAndRemoveAces2() throws Exception {
    createPrincipals();

    AccessControlManager acMgr = getAccessControlManager(root);
    JackrabbitAccessControlList acl = AccessControlUtils.getAccessControlList(acMgr, testPath);
    for (int i = 0; i < 4; i++) {
        acl.addAccessControlEntry(principals.get(i), privilegesFromNames(JCR_READ));
    }
    acMgr.setPolicy(testPath, acl);
    root.commit();

    AccessControlEntry[] aces = acl.getAccessControlEntries();
    acl.removeAccessControlEntry(aces[0]);
    acl.removeAccessControlEntry(aces[2]);
    acl.orderBefore(aces[4], aces[3]);
    acl.addAccessControlEntry(principals.get(4), privilegesFromNames(JCR_READ));
    acl.addAccessControlEntry(principals.get(5), privilegesFromNames(JCR_READ));
    acMgr.setPolicy(testPath, acl);
    root.commit();

    Tree entry = getEntry(principals.get(2).getName(), testPath, 1);
    assertIndex(1, entry);

    entry = getEntry(principals.get(1).getName(), testPath, 2);
    assertIndex(2, entry);
}
 
开发者ID:denismo,项目名称:jackrabbit-dynamodb-store,代码行数:33,代码来源:PermissionHookTest.java

示例7: testReorderAndRemoveAces

import org.apache.jackrabbit.api.security.JackrabbitAccessControlList; //导入方法依赖的package包/类
/**
 * ACE    :  0   1   2   3   4   5   6   7
 * Before :  tp  ev  p0  p1  p2  p3
 * After  :      p1      ev  p3  p2
 */
@Test
public void testReorderAndRemoveAces() throws Exception {
    createPrincipals();

    AccessControlManager acMgr = getAccessControlManager(root);
    JackrabbitAccessControlList acl = AccessControlUtils.getAccessControlList(acMgr, testPath);
    for (int i = 0; i < 4; i++) {
        acl.addAccessControlEntry(principals.get(i), privilegesFromNames(JCR_READ));
    }
    acMgr.setPolicy(testPath, acl);
    root.commit();

    AccessControlEntry[] aces = acl.getAccessControlEntries();
    acl.removeAccessControlEntry(aces[0]);
    acl.removeAccessControlEntry(aces[2]);
    acl.orderBefore(aces[4], null);
    acl.orderBefore(aces[3], aces[1]);
    acMgr.setPolicy(testPath, acl);
    root.commit();

    Tree entry = getEntry(EveryonePrincipal.NAME, testPath, 1);
    assertIndex(1, entry);

    entry = getEntry(principals.get(2).getName(), testPath, 3);
    assertIndex(3, entry);

    for (String pName : new String[]{testPrincipalName, principals.get(0).getName()}) {
        try {
            getEntry(pName, testPath, 0);
            fail();
        } catch (RepositoryException e) {
            // success
        }
    }
}
 
开发者ID:denismo,项目名称:jackrabbit-dynamodb-store,代码行数:41,代码来源:PermissionHookTest.java

示例8: after

import org.apache.jackrabbit.api.security.JackrabbitAccessControlList; //导入方法依赖的package包/类
@Override
public void after() throws Exception {
    AccessControlManager acMgr = getAccessControlManager(root);
    JackrabbitAccessControlList acl = AccessControlUtils.getAccessControlList(acMgr, "/");
    for (AccessControlEntry ace : acl.getAccessControlEntries()) {
        if (testPrincipal.equals(ace.getPrincipal())) {
            acl.removeAccessControlEntry(ace);
        }
    }
    acMgr.setPolicy("/", acl);
    root.commit();
}
 
开发者ID:denismo,项目名称:jackrabbit-dynamodb-store,代码行数:13,代码来源:VersionStorageTest.java

示例9: testRemoveEntries

import org.apache.jackrabbit.api.security.JackrabbitAccessControlList; //导入方法依赖的package包/类
@Test
public void testRemoveEntries() throws Exception {
    JackrabbitAccessControlList acl = createACL(getTestPath(), createTestEntries(), namePathMapper);
    for (AccessControlEntry ace : acl.getAccessControlEntries()) {
        acl.removeAccessControlEntry(ace);
    }
    assertTrue(acl.isEmpty());
}
 
开发者ID:denismo,项目名称:jackrabbit-dynamodb-store,代码行数:9,代码来源:ACLTest.java

示例10: testSettingPrincipalBasedACL

import org.apache.jackrabbit.api.security.JackrabbitAccessControlList; //导入方法依赖的package包/类
@Ignore
@Test
public void testSettingPrincipalBasedACL() throws RepositoryException {
    // usual entry point into the Jackrabbit API
    JackrabbitSession js = (JackrabbitSession) session;

    // get user/principal for whom to read/set ACLs

    // Note: the ACL security API works using Java Principals as high-level abstraction and does not
    // assume the users are actually stored in the JCR with the Jackrabbit UserManagement; an example
    // are external users provided by a custom LoginModule via LDAP
    PrincipalManager pMgr = js.getPrincipalManager();
    Principal principal = pMgr.getPrincipal(session.getUserID());

    // alternatively: get the current user as Authorizable from the user management
    // (there is a one-to-one mapping between Authorizables and Principals)
    User user = ((User) js.getUserManager().getAuthorizable(session.getUserID()));
    Principal principal2 = user.getPrincipal();

    // get the Jackrabbit access control manager
    JackrabbitAccessControlManager acMgr = (JackrabbitAccessControlManager) session.getAccessControlManager();

    JackrabbitAccessControlPolicy[] ps = acMgr.getPolicies(principal); // or getApplicablePolicies()
    JackrabbitAccessControlList list = (JackrabbitAccessControlList) ps[0];

    // list entries
    JackrabbitAccessControlEntry[] entries = (JackrabbitAccessControlEntry[]) list.getAccessControlEntries();
    JackrabbitAccessControlEntry entry = entries[0];

    // remove entry
    list.removeAccessControlEntry(entry);

    // add entry
    Privilege[] privileges = new Privilege[] { acMgr.privilegeFromName(Privilege.JCR_READ) };
    Map<String, Value> restrictions = new HashMap<String, Value>();
    ValueFactory vf = session.getValueFactory();
    restrictions.put("rep:nodePath", vf.createValue("/some/path", PropertyType.PATH));
    restrictions.put("rep:glob", vf.createValue("*"));
    list.addEntry(principal, privileges, true /* allow or deny */, restrictions);

    // reorder entries
    // list.orderBefore(entry, entry2);

    // finally set policy again & save
    acMgr.setPolicy(list.getPath(), list);
    session.save();
}
 
开发者ID:dooApp,项目名称:jcromfx,代码行数:48,代码来源:TestUserManager.java


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