Package org.ldaptive.auth
Class AbstractSearchEntryResolver
- java.lang.Object
-
- org.ldaptive.AbstractFreezable
-
- org.ldaptive.AbstractOperationFactory<SearchRequest,SearchResponse>
-
- org.ldaptive.AbstractSearchOperationFactory
-
- org.ldaptive.auth.AbstractSearchEntryResolver
-
- All Implemented Interfaces:
EntryResolver
,ConnectionFactoryManager
,Freezable
- Direct Known Subclasses:
AuthorizationIdentityEntryResolver
,SearchEntryResolver
,WhoAmIEntryResolver
public abstract class AbstractSearchEntryResolver extends AbstractSearchOperationFactory implements EntryResolver
Base implementation for search entry resolvers. Uses an object level search on theAuthenticationCriteria.getDn()
if nouserFilter
is configured. If auserFilter
is configured, then a search is executed using that filter.
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
allowMultipleEntries
Whether to throw an exception if multiple entries are found.private String
baseDn
DN to search.private String[]
binaryAttributes
Binary attribute names.private DerefAliases
derefAliases
How to handle aliases.private boolean
subtreeSearch
Whether to use a subtree search when resolving DNs.private String
userFilter
Filter for searching for the user.private Object[]
userFilterParameters
Filter parameters for searching for the user.-
Fields inherited from class org.ldaptive.AbstractOperationFactory
logger
-
-
Constructor Summary
Constructors Constructor Description AbstractSearchEntryResolver()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected FilterTemplate
createFilterTemplate(AuthenticationCriteria ac)
Returns a filter template usinguserFilter
anduserFilterParameters
.protected SearchRequest
createSearchRequest(AuthenticationCriteria ac)
Returns a search request for the supplied authentication criteria.boolean
getAllowMultipleEntries()
Returns whether entry resolution should fail if multiple entries are found.String
getBaseDn()
Returns the base DN.String[]
getBinaryAttributes()
Returns names of binary attributes.DerefAliases
getDerefAliases()
Returns how to dereference aliases.boolean
getSubtreeSearch()
Returns whether subtree searching will be used.String
getUserFilter()
Returns the filter used to search for the user.Object[]
getUserFilterParameters()
Returns the filter parameters used to search for the user.protected abstract SearchResponse
performLdapSearch(AuthenticationCriteria criteria, AuthenticationHandlerResponse response)
Executes an ldap search with the supplied authentication criteria.LdapEntry
resolve(AuthenticationCriteria criteria, AuthenticationHandlerResponse response)
Attempts to find the LDAP entry for the supplied authentication criteria and authentication handler response.void
setAllowMultipleEntries(boolean b)
Sets whether entry resolution should fail if multiple entries are found.void
setBaseDn(String dn)
Sets the base DN.void
setBinaryAttributes(String... attrs)
Sets names of binary attributes.void
setDerefAliases(DerefAliases da)
Sets how to dereference aliases.void
setSubtreeSearch(boolean b)
Sets whether subtree searching will be used.void
setUserFilter(String filter)
Sets the filter used to search for the user.void
setUserFilterParameters(Object[] filterParams)
Sets the filter parameters used to search for the user.String
toString()
-
Methods inherited from class org.ldaptive.AbstractSearchOperationFactory
createSearchOperation, createSearchOperation, freeze, getEntryHandlers, getReferenceHandlers, getSearchResultHandlers, setEntryHandlers, setReferenceHandlers, setSearchResultHandlers
-
Methods inherited from class org.ldaptive.AbstractOperationFactory
getConnectionFactory, getControlHandlers, getExceptionHandler, getIntermediateResponseHandlers, getReferralHandlers, getRequestHandlers, getResultHandlers, getThrowCondition, getUnsolicitedNotificationHandlers, initializeOperation, setConnectionFactory, setControlHandlers, setExceptionHandler, setIntermediateResponseHandlers, setReferralHandlers, setRequestHandlers, setResultHandlers, setThrowCondition, setUnsolicitedNotificationHandlers
-
Methods inherited from class org.ldaptive.AbstractFreezable
assertMutable, freeze, freeze, isFrozen
-
-
-
-
Field Detail
-
baseDn
private String baseDn
DN to search.
-
userFilter
private String userFilter
Filter for searching for the user.
-
userFilterParameters
private Object[] userFilterParameters
Filter parameters for searching for the user.
-
allowMultipleEntries
private boolean allowMultipleEntries
Whether to throw an exception if multiple entries are found.
-
subtreeSearch
private boolean subtreeSearch
Whether to use a subtree search when resolving DNs.
-
derefAliases
private DerefAliases derefAliases
How to handle aliases.
-
binaryAttributes
private String[] binaryAttributes
Binary attribute names.
-
-
Method Detail
-
getBaseDn
public final String getBaseDn()
Returns the base DN.- Returns:
- base DN
-
setBaseDn
public final void setBaseDn(String dn)
Sets the base DN.- Parameters:
dn
- base DN
-
getUserFilter
public final String getUserFilter()
Returns the filter used to search for the user.- Returns:
- filter for searching
-
setUserFilter
public final void setUserFilter(String filter)
Sets the filter used to search for the user.- Parameters:
filter
- for searching
-
getUserFilterParameters
public final Object[] getUserFilterParameters()
Returns the filter parameters used to search for the user.- Returns:
- filter parameters
-
setUserFilterParameters
public final void setUserFilterParameters(Object[] filterParams)
Sets the filter parameters used to search for the user.- Parameters:
filterParams
- filter parameters
-
getAllowMultipleEntries
public final boolean getAllowMultipleEntries()
Returns whether entry resolution should fail if multiple entries are found.- Returns:
- whether an exception will be thrown if multiple entries are found
-
setAllowMultipleEntries
public final void setAllowMultipleEntries(boolean b)
Sets whether entry resolution should fail if multiple entries are found. If false an exception will be thrown ifresolve(AuthenticationCriteria, AuthenticationHandlerResponse)
finds more than one entry matching its filter. Otherwise, the first entry found is returned.- Parameters:
b
- whether multiple entries are allowed
-
getSubtreeSearch
public final boolean getSubtreeSearch()
Returns whether subtree searching will be used.- Returns:
- whether the entry will be searched for over the entire base
-
setSubtreeSearch
public final void setSubtreeSearch(boolean b)
Sets whether subtree searching will be used. If true, the entry will be searched for over the entiregetBaseDn()
. Otherwise the entry will be searched for in thegetBaseDn()
context.- Parameters:
b
- whether the entry will be searched for over the entire base
-
getDerefAliases
public final DerefAliases getDerefAliases()
Returns how to dereference aliases.- Returns:
- how to dereference aliases
-
setDerefAliases
public final void setDerefAliases(DerefAliases da)
Sets how to dereference aliases.- Parameters:
da
- how to dereference aliases
-
getBinaryAttributes
public final String[] getBinaryAttributes()
Returns names of binary attributes.- Returns:
- binary attribute names
-
setBinaryAttributes
public final void setBinaryAttributes(String... attrs)
Sets names of binary attributes.- Parameters:
attrs
- binary attribute names
-
performLdapSearch
protected abstract SearchResponse performLdapSearch(AuthenticationCriteria criteria, AuthenticationHandlerResponse response) throws LdapException
Executes an ldap search with the supplied authentication criteria.- Parameters:
criteria
- authentication criteria associated with the userresponse
- response from the authentication event- Returns:
- search result
- Throws:
LdapException
- if an error occurs attempting the search
-
createFilterTemplate
protected FilterTemplate createFilterTemplate(AuthenticationCriteria ac)
Returns a filter template usinguserFilter
anduserFilterParameters
.User.getIdentifier()
is injected with a named parameter of 'user',User.getContext()
is injected with a named parameter of 'context', andAuthenticationCriteria.getDn()
is injected with a named parameter of 'dn'.- Parameters:
ac
- authentication criteria- Returns:
- filter template
-
createSearchRequest
protected SearchRequest createSearchRequest(AuthenticationCriteria ac)
Returns a search request for the supplied authentication criteria. If nouserFilter
is defined then an object level search on the authentication criteria DN is returned. Otherwise theuserFilter
,baseDn
andsubtreeSearch
are used to create the search request.- Parameters:
ac
- authentication criteria containing a DN- Returns:
- search request
-
resolve
public LdapEntry resolve(AuthenticationCriteria criteria, AuthenticationHandlerResponse response) throws LdapException
Description copied from interface:EntryResolver
Attempts to find the LDAP entry for the supplied authentication criteria and authentication handler response. The connection available in the response should not be closed in this method.- Specified by:
resolve
in interfaceEntryResolver
- Parameters:
criteria
- authentication criteria used to perform the authenticationresponse
- produced by the authentication handler- Returns:
- ldap entry
- Throws:
LdapException
- if an LDAP error occurs
-
toString
public String toString()
- Overrides:
toString
in classAbstractSearchOperationFactory
-
-