Interface PrincipalProvider
- All Known Implementing Classes:
CompositePrincipalProvider
,EmptyPrincipalProvider
@ProviderType
public interface PrincipalProvider
The
PrincipalProvider
defines methods to provide access to sources
of Principal
s. This allows the security framework share any external
sources for authorization and authentication, as may be used by a custom
LoginModule
for example.
A single PrincipalProvider
implementation is expected to exposed
principals from one single source. In contrast to the
PrincipalManager
which will expose all known and accessible principals from possibly
different sources. See also CompositePrincipalProvider
for a
mechanism to combine principals of different providers.-
Method Summary
Modifier and TypeMethodDescriptionfindPrincipals
(int searchType) Find all principals that match the search type.findPrincipals
(@Nullable String nameHint, boolean fullText, int searchType, long offset, long limit) Find the principals that match the specified nameHint and search type.findPrincipals
(@Nullable String nameHint, int searchType) Find the principals that match the specified nameHint and search type.default @Nullable ItemBasedPrincipal
getItemBasedPrincipal
(@NotNull String principalOakPath) Returns theItemBasedPrincipal
with the specifiedprincipalOakPath
ornull
if no principal with that path exists.getMembershipPrincipals
(@NotNull Principal principal) Returns an iterator over all group principals for which the given principal is either direct or indirect member of.@Nullable Principal
getPrincipal
(@NotNull String principalName) Returns the principal with the specified name ornull
if the principal does not exist.getPrincipals
(@NotNull String userID) Tries to resolve the specifieduserID
to a valid principal and it's group membership.
-
Method Details
-
getPrincipal
Returns the principal with the specified name ornull
if the principal does not exist.- Parameters:
principalName
- the name of the principal to retrieve- Returns:
- return the requested principal or
null
-
getItemBasedPrincipal
@Nullable default @Nullable ItemBasedPrincipal getItemBasedPrincipal(@NotNull @NotNull String principalOakPath) Returns theItemBasedPrincipal
with the specifiedprincipalOakPath
ornull
if no principal with that path exists.- Parameters:
principalOakPath
- the Oak path of theItemBasedPrincipal
to retrieve- Returns:
- return the requested principal or
null
-
getMembershipPrincipals
@NotNull default @NotNull Set<Principal> getMembershipPrincipals(@NotNull @NotNull Principal principal) 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 iteratorGroupPrincipal.isMember(Principal)
must returntrue
.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.- Parameters:
principal
- the principal to return it's membership from.- Returns:
- an iterator returning all groups the given principal is member of.
- See Also:
-
getPrincipals
Tries to resolve the specifieduserID
to a valid principal and it's group membership. This method returns an empty set if the specified ID cannot be resolved.- 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 @NotNull Iterator<? extends Principal> findPrincipals(@Nullable @Nullable String nameHint, int searchType) Find the principals that match the specified nameHint and search type.- 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- Returns:
- An iterator of principals.
-
findPrincipals
@NotNull default @NotNull Iterator<? extends Principal> findPrincipals(@Nullable @Nullable String nameHint, boolean fullText, int searchType, long offset, long limit) Find the principals that match the specified nameHint and search type.- Parameters:
nameHint
- A name hint to use for non-exact matching.fullText
- hint to use a full text query for searchsearchType
- Limit the search to certain types of principals. Valid values are any ofoffset
- 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.
- Throws:
IllegalArgumentException
- ifoffset
is negative
-
findPrincipals
Find all principals that match the search type.- Parameters:
searchType
- Limit the search to certain types of principals. Valid values are any of- Returns:
- An iterator of principals.
-