Interface AggregatedPermissionProvider

All Superinterfaces:
PermissionProvider

public interface AggregatedPermissionProvider extends PermissionProvider
Extension of the PermissionProvider interface that allows it to be used in combination with other provider implementations.
  • Method Summary

    Modifier and Type
    Method
    Description
    getTreePermission(@NotNull org.apache.jackrabbit.oak.api.Tree tree, @NotNull TreeType type, @NotNull TreePermission parentPermission)
    Return the TreePermission for the set of Principals associated with this provider at the specified tree with the given type.
    boolean
    isGranted(@NotNull TreeLocation location, long permissions)
    Test if the specified permissions are granted for the set of Principals associated with this provider instance for the item identified by the given location and optionally property.
    long
    supportedPermissions(@NotNull TreeLocation location, long permissions)
    Allows to determined the set or subset of permissions evaluated by the implementing permission provider for the specified location.
    long
    supportedPermissions(@NotNull TreePermission treePermission, @Nullable org.apache.jackrabbit.oak.api.PropertyState property, long permissions)
    Allows to determined the set or subset of permissions evaluated by the implementing permission provider for the specified tree permission (plus optionally property).
    long
    supportedPermissions(@Nullable org.apache.jackrabbit.oak.api.Tree tree, @Nullable org.apache.jackrabbit.oak.api.PropertyState property, long permissions)
    Allows to determined the set or subset of permissions evaluated by the implementing permission provider for the specified item (identified by tree and optionally property) or at the repository level in case the specified tree is null.
    @NotNull PrivilegeBits
    supportedPrivileges(@Nullable org.apache.jackrabbit.oak.api.Tree tree, @Nullable PrivilegeBits privilegeBits)
    Allows to determined the set or subset of privileges evaluated by the implementing permission provider for the specified tree or at the repository level in case the specified tree is null.

    Methods inherited from interface org.apache.jackrabbit.oak.spi.security.authorization.permission.PermissionProvider

    getPrivileges, getRepositoryPermission, getTreePermission, hasPrivileges, isGranted, isGranted, refresh
  • Method Details

    • supportedPrivileges

      @NotNull @NotNull PrivilegeBits supportedPrivileges(@Nullable @Nullable org.apache.jackrabbit.oak.api.Tree tree, @Nullable @Nullable PrivilegeBits privilegeBits)
      Allows to determined the set or subset of privileges evaluated by the implementing permission provider for the specified tree or at the repository level in case the specified tree is null. If the given privilegeBits is null an implementation returns the complete set that is covered by the provider; otherwise the supported subset of the specified privilegeBits is returned. Returning PrivilegeBits.EMPTY indicates that this implementation is not in charge of evaluating the specified privileges and thus will be ignored while computing the composite result of PermissionProvider.getPrivileges(org.apache.jackrabbit.oak.api.Tree) or PermissionProvider.hasPrivileges(org.apache.jackrabbit.oak.api.Tree, String...).
      Parameters:
      tree - The tree for which the privileges will be evaluated or null for repository level privileges.
      privilegeBits - The privilege(s) to be tested or null
      Returns:
      The set of privileges or the subset of the given privilegeBits that are supported and evaluated by the implementation at the given tree represented as PrivilegeBits.
    • supportedPermissions

      long supportedPermissions(@Nullable @Nullable org.apache.jackrabbit.oak.api.Tree tree, @Nullable @Nullable org.apache.jackrabbit.oak.api.PropertyState property, long permissions)
      Allows to determined the set or subset of permissions evaluated by the implementing permission provider for the specified item (identified by tree and optionally property) or at the repository level in case the specified tree is null. Returning Permissions.NO_PERMISSION indicates that this implementation is not in charge of evaluating the specified permissions for the specified item and thus will be ignored while computing the composite result of PermissionProvider.isGranted(Tree, PropertyState, long).
      Parameters:
      tree - The tree for which the permissions will be evaluated or null for repository level privileges.
      property - The target property or null.
      permissions - The permissions to be tested
      Returns:
      The subset of the given permissions that are supported and evaluated by the implementation for the given item.
    • supportedPermissions

      long supportedPermissions(@NotNull @NotNull TreeLocation location, long permissions)
      Allows to determined the set or subset of permissions evaluated by the implementing permission provider for the specified location. Returning Permissions.NO_PERMISSION indicates that this implementation is not in charge of evaluating the specified permissions for the specified location and thus will be ignored while computing the composite result of PermissionProvider.isGranted(String, String) and isGranted(TreeLocation, long).
      Parameters:
      location - The tree location for which the permissions will be evaluated.
      permissions - The permissions to be tested
      Returns:
      The subset of the given permissions that are supported and evaluated by the implementation for the given location.
    • supportedPermissions

      long supportedPermissions(@NotNull @NotNull TreePermission treePermission, @Nullable @Nullable org.apache.jackrabbit.oak.api.PropertyState property, long permissions)
      Allows to determined the set or subset of permissions evaluated by the implementing permission provider for the specified tree permission (plus optionally property). Returning Permissions.NO_PERMISSION indicates that this implementation is not in charge of evaluating the specified permissions for the specified tree permission and thus will be ignored while computing the composite result of TreePermission.isGranted(long, PropertyState) and TreePermission.isGranted(long).
      Parameters:
      treePermission - The target tree permission.
      property - The target property or null.
      permissions - The permissions to be tested
      Returns:
      The subset of the given permissions that are supported and evaluated by the implementation for the given tree permissions.
    • isGranted

      boolean isGranted(@NotNull @NotNull TreeLocation location, long permissions)
      Test if the specified permissions are granted for the set of Principals associated with this provider instance for the item identified by the given location and optionally property. This method will only return true if all permissions are granted.
      Parameters:
      location - The TreeLocation to test the permissions for.
      permissions - The permissions to be tested.
      Returns:
      true if the specified permissions are granted for the existing or non-existing item identified by the given location.
    • getTreePermission

      @NotNull @NotNull TreePermission getTreePermission(@NotNull @NotNull org.apache.jackrabbit.oak.api.Tree tree, @NotNull @NotNull TreeType type, @NotNull @NotNull TreePermission parentPermission)
      Return the TreePermission for the set of Principals associated with this provider at the specified tree with the given type.
      Parameters:
      tree - The tree for which the TreePermission object should be built.
      type - The type of this tree.
      parentPermission - The TreePermission object that has been obtained before for the parent tree.
      Returns:
      The TreePermission object for the specified tree.