Package org.ldaptive.auth
Class SearchDnResolver
java.lang.Object
org.ldaptive.AbstractSearchOperationFactory
org.ldaptive.auth.SearchDnResolver
- All Implemented Interfaces:
DnResolver
,ConnectionFactoryManager
Base implementation for search dn resolvers.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
Search DN resolver builder. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate boolean
Whether to throw an exception if multiple DNs are found.private String
DN to search.private DerefAliases
How to handle aliases.private String
Resolve DN from alternative attribute nameprivate boolean
Whether to use a subtree search when resolving DNs.private String
Filter for searching for the user.private Object[]
Filter parameters for searching for the user.Fields inherited from class org.ldaptive.AbstractSearchOperationFactory
logger
-
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor.Creates a new search dn resolver. -
Method Summary
Modifier and TypeMethodDescriptionstatic SearchDnResolver.Builder
builder()
Creates a builder for this class.protected FilterTemplate
createFilterTemplate
(User user) Returns a filter template usinguserFilter
anduserFilterParameters
.protected SearchRequest
createSearchRequest
(FilterTemplate template) Returns a search request for searching for a single entry in an LDAP, returning no attributes.boolean
Returns whether DN resolution should fail if multiple DNs are found.Returns the base DN.Returns how to dereference aliases.Gets an attribute to use to resolve the DN, if the attribute is not present the resolution fails back on the entry's DN.boolean
Returns whether subtree searching will be used.Returns the filter used to search for the user.Object[]
Returns the filter parameters used to search for the user.protected SearchResponse
performLdapSearch
(FilterTemplate template) Executes the ldap search operation with the supplied filter.protected String
Resolve DN from attribute in the resolveFromAttribute property.Attempts to find the DN for the supplied user.protected String
Returns the DN for the supplied ldap entry.void
setAllowMultipleDns
(boolean b) Sets whether DN resolution should fail if multiple DNs are found.void
Sets the base DN.void
Sets how to dereference aliases.void
setResolveFromAttribute
(String attributeName) Sets the attribute to use to resolve the DN.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.toString()
Methods inherited from class org.ldaptive.AbstractSearchOperationFactory
createSearchOperation, createSearchOperation, getConnectionFactory, getEntryHandlers, getExceptionHandler, getResultHandlers, getSearchResultHandlers, setConnectionFactory, setEntryHandlers, setExceptionHandler, setResultHandlers, setSearchResultHandlers
-
Field Details
-
baseDn
DN to search. -
userFilter
Filter for searching for the user. -
userFilterParameters
Filter parameters for searching for the user. -
allowMultipleDns
private boolean allowMultipleDnsWhether to throw an exception if multiple DNs are found. -
subtreeSearch
private boolean subtreeSearchWhether to use a subtree search when resolving DNs. -
derefAliases
How to handle aliases. -
resolveFromAttribute
Resolve DN from alternative attribute name
-
-
Constructor Details
-
SearchDnResolver
public SearchDnResolver()Default constructor. -
SearchDnResolver
Creates a new search dn resolver.- Parameters:
cf
- connection factory
-
-
Method Details
-
getBaseDn
Returns the base DN.- Returns:
- base DN
-
setBaseDn
Sets the base DN.- Parameters:
dn
- base DN
-
getUserFilter
Returns the filter used to search for the user.- Returns:
- filter for searching
-
setUserFilter
Sets the filter used to search for the user.- Parameters:
filter
- user filter
-
getUserFilterParameters
Returns the filter parameters used to search for the user.- Returns:
- filter parameters
-
setUserFilterParameters
Sets the filter parameters used to search for the user.- Parameters:
filterParams
- filter parameters
-
getAllowMultipleDns
public boolean getAllowMultipleDns()Returns whether DN resolution should fail if multiple DNs are found.- Returns:
- whether an exception will be thrown if multiple DNs are found
-
setAllowMultipleDns
public void setAllowMultipleDns(boolean b) Sets whether DN resolution should fail if multiple DNs are found. If false an exception will be thrown ifresolve(User)
finds more than one DN matching it's filter. Otherwise the first DN found is returned.- Parameters:
b
- whether multiple DNs are allowed
-
getSubtreeSearch
public boolean getSubtreeSearch()Returns whether subtree searching will be used.- Returns:
- whether the DN will be searched for over the entire base
-
setSubtreeSearch
public void setSubtreeSearch(boolean b) Sets whether subtree searching will be used. If true, the DN used for authenticating will be searched for over the entiregetBaseDn()
. Otherwise the DN will be searched for in thegetBaseDn()
context.- Parameters:
b
- whether the DN will be searched for over the entire base
-
getDerefAliases
Returns how to dereference aliases.- Returns:
- how to dereference aliases
-
setDerefAliases
Sets how to dereference aliases.- Parameters:
da
- how to dereference aliases
-
getResolveFromAttribute
Gets an attribute to use to resolve the DN, if the attribute is not present the resolution fails back on the entry's DN.- Returns:
- the attribute name
-
setResolveFromAttribute
Sets the attribute to use to resolve the DN. If null, the resolver will use the entry's DN.- Parameters:
attributeName
- attribute name
-
resolve
Attempts to find the DN for the supplied user.createFilterTemplate(User)
()} is used to create the search filter. If more than one entry matches the search, the result is controlled bysetAllowMultipleDns(boolean)
.- Specified by:
resolve
in interfaceDnResolver
- Parameters:
user
- to find DN for- Returns:
- user DN
- Throws:
LdapException
- if the entry resolution fails
-
resolveDn
Returns the DN for the supplied ldap entry.- Parameters:
entry
- to retrieve the DN from- Returns:
- dn
-
performResolveFromAttribute
Resolve DN from attribute in the resolveFromAttribute property.- Parameters:
entry
- containing an attribute with the DN- Returns:
- first and singled value in resolveFromAttribute, or null if not valid
-
createFilterTemplate
Returns a filter template usinguserFilter
anduserFilterParameters
. The user parameter is injected as a named parameter of 'user'.- Parameters:
user
- to resolve DN- Returns:
- filter template
-
createSearchRequest
Returns a search request for searching for a single entry in an LDAP, returning no attributes.- Parameters:
template
- to execute- Returns:
- search request
-
performLdapSearch
Executes the ldap search operation with the supplied filter.- Parameters:
template
- to execute- Returns:
- ldap search result
- Throws:
LdapException
- if an error occurs
-
toString
-
builder
Creates a builder for this class.- Returns:
- new builder
-