本文整理汇总了Java中org.apache.jackrabbit.api.security.JackrabbitAccessControlList.getAccessControlEntries方法的典型用法代码示例。如果您正苦于以下问题:Java JackrabbitAccessControlList.getAccessControlEntries方法的具体用法?Java JackrabbitAccessControlList.getAccessControlEntries怎么用?Java JackrabbitAccessControlList.getAccessControlEntries使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.jackrabbit.api.security.JackrabbitAccessControlList
的用法示例。
在下文中一共展示了JackrabbitAccessControlList.getAccessControlEntries方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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();
}
}
示例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;
}
示例3: testAclPropagation
import org.apache.jackrabbit.api.security.JackrabbitAccessControlList; //导入方法依赖的package包/类
@Test
public void testAclPropagation() throws Exception {
Tree node = root1.getTree("/").addChild("testNode");
node.setProperty("jcr:primaryType", "nt:unstructured");
User user1 = userManager1.createUser("testUser", "testUser");
JackrabbitAccessControlList acl1 = AccessControlUtils.getAccessControlList(aclMgr1, "/testNode");
acl1.addEntry(user1.getPrincipal(), AccessControlUtils.privilegesFromNames(aclMgr1, "jcr:all"), true);
aclMgr1.setPolicy("/testNode", acl1);
root1.commit();
syncClusterNodes();
root2.refresh();
JackrabbitAccessControlList acl2 = AccessControlUtils.getAccessControlList(aclMgr2, "/testNode");
AccessControlEntry[] aces = acl2.getAccessControlEntries();
assertEquals(1, aces.length);
}
示例4: 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();
}
}
示例5: 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());
}
}
示例6: 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);
}
示例7: 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);
}
示例8: 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
}
}
}
示例9: 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();
}
示例10: 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());
}
示例11: 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();
}