Class PrivilegeCollection.Default

java.lang.Object
org.apache.jackrabbit.api.security.authorization.PrivilegeCollection.Default
All Implemented Interfaces:
PrivilegeCollection
Enclosing interface:
PrivilegeCollection

public static class PrivilegeCollection.Default extends Object implements PrivilegeCollection
Default implementation of the PrivilegeCollection interface. Note that this implementation uses JCR API to resolve privilege aggregation, which is expected to be inefficient. Implementations of JackrabbitAccessControlManager.getPrivilegeCollection(String) and JackrabbitAccessControlManager.getPrivilegeCollection(String, Set) therefore should provide improved implementations of the PrivilegeCollection interface.
Since:
Oak 1.42.0
  • Constructor Details

  • Method Details

    • getPrivileges

      public Privilege[] getPrivileges()
      Description copied from interface: PrivilegeCollection
      Return the underlying privilege array.
      Specified by:
      getPrivileges in interface PrivilegeCollection
      Returns:
      the privilege array for which this instance has been created.
    • includes

      public boolean includes(@NotNull @NotNull String... privilegeNames) throws RepositoryException
      Description copied from interface: PrivilegeCollection
      Tests whether the given JCR privilegeNames are contained in the privileges for which this instance of PrivilegeEvaluation has been created such as e.g. through JackrabbitAccessControlManager.getPrivilegeCollection(String) or JackrabbitAccessControlManager.getPrivilegeCollection(String, Set). The inclusion can either be direct or through privilege aggregation.
      Specified by:
      includes in interface PrivilegeCollection
      Parameters:
      privilegeNames - The JCR names of privileges to be tested. They can be passed in expanded form (like e.g. Privilege.JCR_READ) or in qualified form (i.e. 'jcr:read' if 'jcr' was the prefixed defined for the 'http://www.jcp.org/jcr/1.0' namespace.
      Returns:
      true if the underlying privileges include all specified privilege names either directly or by means of aggregation; false if one or multiple privileges are not included. If jcr:all privilege is part of this collection or if no privilege names are specified this method will return true. If no privileges are granted false is returned.
      Throws:
      AccessControlException - If any of the given privilege names is invalid i.e. no such privilege exists.
      RepositoryException - If another error occurs.