javax.jcr.Session.getAccessControlManager()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(9.5k)|赞(0)|评价(0)|浏览(72)

本文整理了Java中javax.jcr.Session.getAccessControlManager()方法的一些代码示例,展示了Session.getAccessControlManager()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Session.getAccessControlManager()方法的具体详情如下:
包路径:javax.jcr.Session
类名称:Session
方法名:getAccessControlManager

Session.getAccessControlManager介绍

[英]Returns the access control manager for this Session.
[中]返回此Session的访问控制管理器。

代码示例

代码示例来源:origin: org.apache.jackrabbit/jackrabbit-jcr-commons

/**
 * Retrieves the {@link Privilege}s from the specified privilege names.
 *
 * @param session The editing session.
 * @param privilegeNames The privilege names.
 * @return An array of privileges.
 * @throws RepositoryException If an error occurs or if {@code privilegeNames}
 * contains an unknown/invalid privilege name.
 */
public static Privilege[] privilegesFromNames(Session session, String... privilegeNames) throws RepositoryException {
  return privilegesFromNames(session.getAccessControlManager(), privilegeNames);
}

代码示例来源:origin: apache/jackrabbit

/**
 * Build supported privileges for the jcr:all privilege.
 *
 * @param session The reading session
 */
public JcrSupportedPrivilegesProperty(Session session) throws RepositoryException {
  this.session = session;
  this.absPath = null;
  AccessControlManager acMgr = session.getAccessControlManager();
  Privilege jcrAll = acMgr.privilegeFromName(Privilege.JCR_ALL);
  privileges.add(jcrAll);
}

代码示例来源:origin: Adobe-Consulting-Services/acs-aem-commons

private Privilege[] getPrivilegesFromNames(ResourceResolver res, String[] names) throws RepositoryException {
  Session session = res.adaptTo(Session.class);
  AccessControlManager acm = session.getAccessControlManager();
  Privilege[] prvlgs = new Privilege[names.length];
  for (int i = 0; i < names.length; i++) {
    prvlgs[i] = acm.privilegeFromName(names[i]);
  }
  return prvlgs;
}

代码示例来源:origin: pentaho/pentaho-platform

public Object doInJcr( final Session session ) throws RepositoryException, IOException {
  PentahoJcrConstants pentahoJcrConstants = new PentahoJcrConstants( session );
  Node node = session.getNodeByIdentifier( fileId.toString() );
  String absPath = node.getPath();
  AccessControlManager acMgr = session.getAccessControlManager();
  AccessControlList acList = getAccessControlList( acMgr, absPath );
  acMgr.setPolicy( absPath, acList );
  return internalUpdateAcl( session, pentahoJcrConstants, fileId, acl );
 }
} );

代码示例来源:origin: apache/jackrabbit

/** {@inheritDoc} */
  public RemoteAccessControlManager getAccessControlManager()
      throws UnsupportedRepositoryOperationException,
      RepositoryException, RemoteException {
    try {
      return getFactory().getRemoteAccessControlManager(
        session.getAccessControlManager());
    } catch (RepositoryException ex) {
      throw getRepositoryException(ex);
    }
  }
}

代码示例来源:origin: apache/jackrabbit-oak

public void testGetPrivilegesForPrincipalsUserSession() throws Exception {
  JackrabbitAccessControlManager acMgr = (JackrabbitAccessControlManager) userSession.getAccessControlManager();
  // EXERCISE: complete the test case and explain the behaviour
  Privilege[] privs = acMgr.getPrivileges(testPath, ImmutableSet.of(gPrincipal));
  Set<Privilege> expectedPrivs = null;
  assertEquals(expectedPrivs, ImmutableSet.copyOf(privs));
}

代码示例来源:origin: apache/jackrabbit-oak

private void createAce(Session session, int count) throws RepositoryException {
  AccessControlManager acManager = session.getAccessControlManager();
  JackrabbitAccessControlList acl = AccessControlUtils.getAccessControlList(acManager, nodePath);
  for (int i = 0; i < count; i++) {
    ImmutableMap<String, Value> restrictions = ImmutableMap.of(AccessControlConstants.REP_GLOB, session.getValueFactory().createValue(i + ""));
    acl.addEntry(EveryonePrincipal.getInstance(), AccessControlUtils.privilegesFromNames(acManager, Privilege.JCR_ADD_CHILD_NODES), true, restrictions);
  }
  acManager.setPolicy(nodePath, acl);
}

代码示例来源:origin: apache/jackrabbit-oak

public void testHasPrivilegesPropertyPath() throws Exception {
  AccessControlManager acMgr = userSession.getAccessControlManager();
  // EXERCISE: complete the test
  Privilege[] expectedPrivs = null;
  assertTrue(acMgr.hasPrivileges(propPath, expectedPrivs));
}

代码示例来源:origin: pentaho/pentaho-platform

public Object doInJcr( final Session session ) throws RepositoryException, IOException {
  DefaultPermissionConversionHelper permissionConversionHelper = new DefaultPermissionConversionHelper( session );
  Privilege[] privs = permissionConversionHelper.pentahoPermissionsToPrivileges( session, permissions );
  try {
   String absPath = pathConversionHelper.relToAbs( relPath );
   return session.getAccessControlManager().hasPrivileges( JcrStringHelper.pathEncode( absPath ), privs );
  } catch ( PathNotFoundException e ) {
   // never throw an exception if the path does not exist; just return false
   return false;
  }
 }
} );

代码示例来源:origin: org.apache.sling/org.apache.sling.distribution.core

private void checkPermissionForDelete(Session session, String[] paths)
    throws RepositoryException, DistributionException {
  AccessControlManager acMgr = session.getAccessControlManager();
  Privilege[] privileges = new Privilege[]{acMgr.privilegeFromName(jcrPrivilege), acMgr.privilegeFromName(Privilege.JCR_REMOVE_NODE)};
  for (String path : paths) {
    String closestParentPath = getClosestParent(session, path);
    if (closestParentPath == null || !acMgr.hasPrivileges(closestParentPath, privileges)) {
      throw new DistributionException("Not enough privileges");
    }
  }
}

代码示例来源:origin: apache/jackrabbit-oak

@Override
protected void afterTest() throws Exception {
  Session session = createOrGetSystemSession();
  AccessControlManager acm = session.getAccessControlManager();
  for (AccessControlPolicy policy : acm.getPolicies(nodePath)) {
    acm.removePolicy(nodePath, policy);
  }
  save(session, transientWrites);
  super.afterTest();
}

代码示例来源:origin: apache/jackrabbit-oak

public void testSessionGetEffectivePoliciesWithoutPrivilege() throws Exception {
  // grant 'testUser' READ + WRITE privileges at the test path
  setupPolicy(testRoot, testPrivileges, testPrincipal);
  superuser.save();
  testSession = getTestSession();
  AccessControlManager testAcMgr = testSession.getAccessControlManager();
  List<String> paths = ImmutableList.of(testRoot, NodeTypeConstants.NODE_TYPES_PATH);
  for (String path : paths) {
    // EXERCISE : complete or fix the test case
    AccessControlPolicy[] effectivePolicies = testAcMgr.getEffectivePolicies(path);
  }
}

代码示例来源:origin: Adobe-Consulting-Services/acs-aem-commons

public void checkNodeAcls(ResourceResolver res, String path, Privilege[] prvlgs) throws RepositoryException {
  Actions.setCurrentItem(path);
  Session session = res.adaptTo(Session.class);
  boolean report = res.getResource(path).getResourceType().equals(NameConstants.NT_PAGE);
  if (!session.getAccessControlManager().hasPrivileges(path, prvlgs)) {
    note(path, Report.acl_check, "FAIL");
    throw new RepositoryException("Insufficient permissions to permit move operation");
  } else if (report) {
    note(path, Report.acl_check, "PASS");
  }
}

代码示例来源:origin: apache/jackrabbit-oak

@Override
protected void setUp() throws Exception {
  super.setUp();
  /* create a second group the test user is member of */
  group2 = getUserManager(superuser).createGroup("testGroup" + UUID.randomUUID());
  group2.addMember(testUser);
  superuser.save();
  // recreate test session
  testSession.logout();
  testSession = createTestSession();
  testAcMgr = testSession.getAccessControlManager();
}

代码示例来源:origin: apache/jackrabbit

public void testGetPrivilegesThrowsAccessDenied() throws RepositoryException {
  Session readOnly = getHelper().getReadOnlySession();
  JackrabbitAccessControlManager jacMgr = (JackrabbitAccessControlManager) readOnly.getAccessControlManager();
  try {
    jacMgr.getPrivileges(testRoot, principals);
    fail("ReadOnly session isn't allowed to determine the privileges of other principals.");
  } catch (AccessDeniedException e) {
    // success
  } finally {
    readOnly.logout();
  }
}

代码示例来源:origin: apache/jackrabbit-oak

public void testGetPrivileges() throws Exception {
  AccessControlManager acMgr = userSession.getAccessControlManager();
  Set<Privilege> expected = null; // EXERCISE
  Privilege[] testRootPrivs = acMgr.getPrivileges(testRoot);
  assertEquals(expected, ImmutableSet.copyOf(testRootPrivs));
  expected = null; // EXERCISE
  Privilege[] privs = acMgr.getPrivileges(testPath);
  assertEquals(expected, ImmutableSet.copyOf(privs));
  expected = null; // EXERCISE
  Privilege[] childPrivs = acMgr.getPrivileges(childPath);
  assertEquals(expected, ImmutableSet.copyOf(childPrivs));
}

代码示例来源:origin: apache/jackrabbit-oak

@Override
protected void setUp() throws Exception {
  super.setUp();
  acMgr = superuser.getAccessControlManager();
  User testUser = ExerciseUtility.createTestUser(((JackrabbitSession) superuser).getUserManager());
  testPrincipal = testUser.getPrincipal();
  testID = testUser.getID();
  superuser.save();
}

代码示例来源:origin: apache/jackrabbit-oak

@Override
protected void prepareTestData(Session s) throws RepositoryException {
  UserManager uMgr = ((JackrabbitSession) s).getUserManager();
  User user = uMgr.createUser(USER, PASSWORD);
  s.save();
  AccessControlManager acMgr = s.getAccessControlManager();
  JackrabbitAccessControlList tmpl = AccessControlUtils.getAccessControlList(acMgr, "/");
  tmpl.addEntry(user.getPrincipal(), new Privilege[]{acMgr.privilegeFromName(Privilege.JCR_ALL)},
      true, Collections.<String, Value>emptyMap());
  acMgr.setPolicy(tmpl.getPath(), tmpl);
  s.save();
}

代码示例来源:origin: apache/jackrabbit-oak

@Override
protected void setUp() throws Exception {
  super.setUp();
  acMgr = superuser.getAccessControlManager();
  testPrincipal = ExerciseUtility.createTestGroup(((JackrabbitSession) superuser).getUserManager()).getPrincipal();
  superuser.save();
  acl = AccessControlUtils.getAccessControlList(superuser, testRoot);
  if (acl == null) {
    throw new NotExecutableException();
  }
}

代码示例来源:origin: apache/jackrabbit-oak

@Override
protected void setUp() throws Exception {
  super.setUp();
  acMgr = superuser.getAccessControlManager();
  testPrincipal = ExerciseUtility.createTestGroup(((JackrabbitSession) superuser).getUserManager()).getPrincipal();
  superuser.save();
  acl = AccessControlUtils.getAccessControlList(superuser, testRoot);
  if (acl == null) {
    throw new NotExecutableException();
  }
  testPrivileges = AccessControlUtils.privilegesFromNames(acMgr, Privilege.JCR_READ, Privilege.JCR_WRITE);
}

相关文章

微信公众号

最新文章

更多