public class JndiDnsResolver extends Object implements DnsResolver
DnsResolver
,
InitialContextFactory
Constructor and Description |
---|
JndiDnsResolver() |
Modifier and Type | Method and Description |
---|---|
String |
resolveIpAddress(String hostname)
Resolves the IP Address (A record) to the specified host name.
|
String |
resolveServiceEntry(String serviceType,
String domain)
Resolves the host name for the specified service in the specified domain
|
String |
resolveServiceIpAddress(String serviceType,
String domain)
Resolves the host name for the specified service and then the IP Address for this
host in one call.
|
void |
setCtxFactory(InitialContextFactory ctxFactory)
Allows to inject an own JNDI context factory.
|
public void setCtxFactory(InitialContextFactory ctxFactory)
ctxFactory
- factory to use, when a DirContext is neededInitialDirContext
,
DirContext
public String resolveIpAddress(String hostname)
DnsResolver
resolveIpAddress
in interface DnsResolver
hostname
- The hostname for which you need the IP Addresspublic String resolveServiceEntry(String serviceType, String domain)
DnsResolver
Resolves the host name for the specified service in the specified domain
For example, if you need the host name for an LDAP server running in the domain springsource.com, you would call resolveServiceEntry("ldap", "springsource.com").
The DNS server needs to provide the service records for this, in the example above, it would look like this:
_ldap._tcp.springsource.com IN SRV 10 0 88 ldap.springsource.com.The method will return the record with highest priority (which means the lowest number in the DNS record) and if there are more than one records with the same priority, it will return the one with the highest weight. You will find more informatione about DNS service records at Wikipedia.
resolveServiceEntry
in interface DnsResolver
serviceType
- The service type you are searching for, e.g. ldap, kerberos, ...domain
- The domain, in which you are searching for the servicepublic String resolveServiceIpAddress(String serviceType, String domain)
DnsResolver
resolveServiceIpAddress
in interface DnsResolver
serviceType
- The service type you are searching for, e.g. ldap, kerberos, ...domain
- The domain, in which you are searching for the serviceDnsResolver.resolveServiceEntry(String, String)
,
DnsResolver.resolveIpAddress(String)