public abstract class LdapDnsProvider extends Object
An LDAP DNS provider is a concrete subclass of this class that
has a zero-argument constructor. LDAP DNS providers are located using the
ServiceLoader facility, as specified by
InitialDirectContext.
The
ServiceLoader
is used to create and register
implementations of LdapDnsProvider
.
An LDAP DNS provider can be used in environments where the default
DNS resolution mechanism is not sufficient to accurately pinpoint the
correct LDAP servers needed to perform LDAP operations. For example, in an
environment containing a mix of ldap
and ldaps
servers
you may want the LdapContext
to query ldaps
servers only.
- Since:
- 12
-
Constructor Summary
Constructors Modifier Constructor Description protected
LdapDnsProvider()
Creates a new instance ofLdapDnsProvider
. -
Method Summary
Modifier and Type Method Description abstract Optional<LdapDnsProviderResult>
lookupEndpoints(String url, Map<?,?> env)
Lookup the endpoints and domain name for the givenContext
provider URL
and environment.
-
Constructor Details
-
LdapDnsProvider
protected LdapDnsProvider()Creates a new instance ofLdapDnsProvider
.- Throws:
SecurityException
- if a security manager is present and itscheckPermission
method doesn't allow theRuntimePermission("ldapDnsProvider")
.
-
-
Method Details
-
lookupEndpoints
public abstract Optional<LdapDnsProviderResult> lookupEndpoints(String url, Map<?,?> env) throws NamingExceptionLookup the endpoints and domain name for the givenContext
provider URL
and environment. The resolved endpoints and domain name are returned as anLdapDnsProviderResult
.An endpoint is a
String
representation of an LDAP URL which points to an LDAP server to be used for LDAP operations. The syntax of an LDAP URL is defined by RFC 2255: The LDAP URL Format.- Parameters:
url
- TheContext
provider URL
env
- TheContext
environment.- Returns:
- an
LdapDnsProviderResult
or emptyOptional
if the lookup fails. - Throws:
NamingException
- if theurl
is not valid or an error occurred while performing the lookup.NullPointerException
- if eitherurl
orenv
arenull
.
-