Class CompositePrincipalProvider

java.lang.Object
org.apache.jackrabbit.oak.spi.security.principal.CompositePrincipalProvider
All Implemented Interfaces:
PrincipalProvider

public class CompositePrincipalProvider extends Object implements PrincipalProvider
PrincipalProvider implementation that aggregates a list of principal providers into a single.
  • Constructor Details

  • Method Details

    • of

      public static PrincipalProvider of(@NotNull @NotNull List<PrincipalProvider> providers)
    • getPrincipal

      @Nullable public @Nullable Principal getPrincipal(@NotNull @NotNull String principalName)
      Description copied from interface: PrincipalProvider
      Returns the principal with the specified name or null if the principal does not exist.
      Specified by:
      getPrincipal in interface PrincipalProvider
      Parameters:
      principalName - the name of the principal to retrieve
      Returns:
      return the requested principal or null
    • getItemBasedPrincipal

      @Nullable public @Nullable org.apache.jackrabbit.api.security.principal.ItemBasedPrincipal getItemBasedPrincipal(@NotNull @NotNull String principalOakPath)
      Description copied from interface: PrincipalProvider
      Returns the ItemBasedPrincipal with the specified principalOakPath or null if no principal with that path exists.
      Specified by:
      getItemBasedPrincipal in interface PrincipalProvider
      Parameters:
      principalOakPath - the Oak path of the ItemBasedPrincipal to retrieve
      Returns:
      return the requested principal or null
    • getMembershipPrincipals

      @NotNull public @NotNull Set<Principal> getMembershipPrincipals(@NotNull @NotNull Principal principal)
      Description copied from interface: PrincipalProvider
      Returns an iterator over all group principals for which the given principal is either direct or indirect member of. Thus for any principal returned in the iterator GroupPrincipal.isMember(Principal) must return true.

      Example:
      If Principal is member of Group A, and Group A is member of Group B, this method will return Group A and Group B.

      Specified by:
      getMembershipPrincipals in interface PrincipalProvider
      Parameters:
      principal - the principal to return it's membership from.
      Returns:
      an iterator returning all groups the given principal is member of.
      See Also:
      • GroupPrincipal.isMember(java.security.Principal)
    • getPrincipals

      @NotNull public @NotNull Set<Principal> getPrincipals(@NotNull @NotNull String userID)
      Description copied from interface: PrincipalProvider
      Tries to resolve the specified userID to a valid principal and it's group membership. This method returns an empty set if the specified ID cannot be resolved.
      Specified by:
      getPrincipals in interface PrincipalProvider
      Parameters:
      userID - A userID.
      Returns:
      The set of principals associated with the specified userID or an empty set if it cannot be resolved.
    • findPrincipals

      @NotNull public @NotNull Iterator<Principal> findPrincipals(@Nullable @Nullable String nameHint, int searchType)
      Description copied from interface: PrincipalProvider
      Find the principals that match the specified nameHint and search type.
      Specified by:
      findPrincipals in interface PrincipalProvider
      Parameters:
      nameHint - A name hint to use for non-exact matching.
      searchType - Limit the search to certain types of principals. Valid values are any of
      • PrincipalManager.SEARCH_TYPE_ALL
      • PrincipalManager.SEARCH_TYPE_NOT_GROUP
      • PrincipalManager.SEARCH_TYPE_GROUP
      Returns:
      An iterator of principals.
    • findPrincipals

      @NotNull public @NotNull Iterator<? extends Principal> findPrincipals(int searchType)
      Description copied from interface: PrincipalProvider
      Find all principals that match the search type.
      Specified by:
      findPrincipals in interface PrincipalProvider
      Parameters:
      searchType - Limit the search to certain types of principals. Valid values are any of
      • PrincipalManager.SEARCH_TYPE_ALL
      • PrincipalManager.SEARCH_TYPE_NOT_GROUP
      • PrincipalManager.SEARCH_TYPE_GROUP
      Returns:
      An iterator of principals.
    • findPrincipals

      @NotNull public @NotNull Iterator<? extends Principal> findPrincipals(@Nullable @Nullable String nameHint, boolean fullText, int searchType, long offset, long limit)
      Description copied from interface: PrincipalProvider
      Find the principals that match the specified nameHint and search type.
      Specified by:
      findPrincipals in interface PrincipalProvider
      Parameters:
      nameHint - A name hint to use for non-exact matching.
      fullText - hint to use a full text query for search
      searchType - Limit the search to certain types of principals. Valid values are any of
      • PrincipalManager.SEARCH_TYPE_ALL
      • PrincipalManager.SEARCH_TYPE_NOT_GROUP
      • PrincipalManager.SEARCH_TYPE_GROUP
      offset - Offset from where to start returning results. 0 for no offset.
      limit - Maximal number of results to return. -1 for no limit.
      Returns:
      An iterator of principals.