org.springframework.security.remoting.dns
Interface DnsResolver

All Known Implementing Classes:
JndiDnsResolver

public interface DnsResolver

Helper class for DNS operations.

Since:
3.0

Method Summary
 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.
 

Method Detail

resolveIpAddress

String resolveIpAddress(String hostname)
                        throws DnsEntryNotFoundException,
                               DnsLookupException
Resolves the IP Address (A record) to the specified host name. Throws DnsEntryNotFoundException if there is no record.

Parameters:
hostname - The hostname for which you need the IP Address
Returns:
IP Address as a String
Throws:
DnsEntryNotFoundException - No record found
DnsLookupException - Unknown DNS error

resolveServiceEntry

String resolveServiceEntry(String serviceType,
                           String domain)
                           throws DnsEntryNotFoundException,
                                  DnsLookupException

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.

Parameters:
serviceType - The service type you are searching for, e.g. ldap, kerberos, ...
domain - The domain, in which you are searching for the service
Returns:
The hostname of the service
Throws:
DnsEntryNotFoundException - No record found
DnsLookupException - Unknown DNS error

resolveServiceIpAddress

String resolveServiceIpAddress(String serviceType,
                               String domain)
                               throws DnsEntryNotFoundException,
                                      DnsLookupException
Resolves the host name for the specified service and then the IP Address for this host in one call.

Parameters:
serviceType - The service type you are searching for, e.g. ldap, kerberos, ...
domain - The domain, in which you are searching for the service
Returns:
IP Address of the service
Throws:
DnsEntryNotFoundException - No record found
DnsLookupException - Unknown DNS error
See Also:
resolveServiceEntry(String, String), resolveIpAddress(String)