Package org.ldaptive.auth
Class AggregateDnResolver
java.lang.Object
org.ldaptive.auth.AggregateDnResolver
- All Implemented Interfaces:
DnResolver
Looks up a user's DN using multiple DN resolvers. Each DN resolver is invoked on a separate thread. If multiple DNs
are allowed then the first one retrieved is returned.
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate boolean
Whether to throw an exception if multiple DNs are found.private Map<String,
DnResolver> Labeled DN resolvers.protected final org.slf4j.Logger
Logger for this class.private final ExecutorService
To submit operations to. -
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor.AggregateDnResolver
(Map<String, DnResolver> resolvers) Creates a new aggregate dn resolver.AggregateDnResolver
(Map<String, DnResolver> resolvers, ExecutorService es) Creates a new aggregate dn resolver. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addDnResolver
(String label, DnResolver resolver) Adds a DN resolver with the supplied label.static AggregateDnResolver.Builder
builder()
Creates a builder for this class.createEntryResolver
(EntryResolver resolver) Creates an aggregate entry resolver using the labels from the DN resolver and the supplied entry resolver.boolean
Returns whether DN resolution should fail if multiple DNs are found.Returns the DN resolvers to aggregate over.Attempts to find the LDAP DN for the supplied user.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 that more than one DN resolver returns a DN.void
setDnResolvers
(Map<String, DnResolver> resolvers) Sets the DN resolvers to aggregate over.void
shutdown()
InvokesExecutorService.shutdown()
on the underlying executor service.
-
Field Details
-
logger
protected final org.slf4j.Logger loggerLogger for this class. -
service
To submit operations to. -
dnResolvers
Labeled DN resolvers. -
allowMultipleDns
private boolean allowMultipleDnsWhether to throw an exception if multiple DNs are found.
-
-
Constructor Details
-
AggregateDnResolver
public AggregateDnResolver()Default constructor. -
AggregateDnResolver
Creates a new aggregate dn resolver.- Parameters:
resolvers
- dn resolvers
-
AggregateDnResolver
Creates a new aggregate dn resolver.- Parameters:
resolvers
- dn resolverses
- executor service for invoking DN resolvers
-
-
Method Details
-
getDnResolvers
Returns the DN resolvers to aggregate over.- Returns:
- map of label to dn resolver
-
setDnResolvers
Sets the DN resolvers to aggregate over.- Parameters:
resolvers
- to set
-
addDnResolver
Adds a DN resolver with the supplied label.- Parameters:
label
- of the resolverresolver
- DN resolver
-
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 that more than one DN resolver returns a DN. Otherwise the first DN found is returned.- Parameters:
b
- whether multiple DNs are allowed
-
createEntryResolver
Creates an aggregate entry resolver using the labels from the DN resolver and the supplied entry resolver.- Parameters:
resolver
- used for every label- Returns:
- aggregate entry resolver
-
resolve
Description copied from interface:DnResolver
Attempts to find the LDAP DN for the supplied user.- Specified by:
resolve
in interfaceDnResolver
- Parameters:
user
- to find DN for- Returns:
- user DN
- Throws:
LdapException
- if an LDAP error occurs
-
shutdown
public void shutdown()InvokesExecutorService.shutdown()
on the underlying executor service. -
builder
Creates a builder for this class.- Returns:
- new builder
-