gnu.inet.ldap

Class LDAPConnection


public class LDAPConnection
extends java.lang.Object

An LDAPv3 client. This client is still experimental, please contact Chris Burdess if you want to help out with it.

Field Summary

static int
DEFAULT_PORT
The default LDAP port.
static int
DEREF_ALWAYS
Dereference aliases both in searching and in locating the base object of the search.
static int
DEREF_FINDING_BASE_OBJ
Dereference aliases in locating the base object of the search, but not when searching subordinates of the base object.
static int
DEREF_IN_SEARCHING
Dereference aliases in subordinates of the base object in searching, but not in locating the base object of the search.
static int
DEREF_NEVER
Do not dereference aliases in searching or in locating the base object of the search.
static int
SCOPE_BASE_OBJECT
static int
SCOPE_SINGLE_LEVEL
static int
SCOPE_WHOLE_SUBTREE
protected String
host
protected int
port
protected int
version

Constructor Summary

LDAPConnection(String host)
Creates a new LDAP connection to the specified host, using the default LDAP port.
LDAPConnection(String host, int port)
Creates a new LDAP connection to the specified host and port.
LDAPConnection(String host, int port, int connectionTimeout, int timeout)
Creates a new LDAP connection to the specified host, port, and timeouts.

Method Summary

LDAPResult
add(String name, AttributeValues[] attributes)
Requests the addition of a new entry into the directory.
LDAPResult
bind(String name, String mechanism, byte[] credentials, Control[] controls)
Initiates a bind operation to authenticate the client to the server.
LDAPResult
delete(String name)
Requests the removal of an entry from the directory.
LDAPResult
modify(String name, Modification[] modifications)
Issues a modify request.
LDAPResult
modifyDN(String name, String newRDN, boolean deleteOldRDN, String newSuperior)
Changes the leftmost(least significant) component of the name of an entry in the directory, or move a subtree of entries to a new location in the directory.
LDAPResult
search(String name, int scope, int derefAliases, int sizeLimit, int timeLimit, boolean typesOnly, String filter, String[] attributes, Control[] controls, ResultHandler handler)
Issues a search request.
void
setVersion(int version)
Sets the version of LDAP to use.
void
unbind()
Issues an unbind request.

Field Details

DEFAULT_PORT

public static final int DEFAULT_PORT
The default LDAP port.
Field Value:
389

DEREF_ALWAYS

public static final int DEREF_ALWAYS
Dereference aliases both in searching and in locating the base object of the search.
Field Value:
3

DEREF_FINDING_BASE_OBJ

public static final int DEREF_FINDING_BASE_OBJ
Dereference aliases in locating the base object of the search, but not when searching subordinates of the base object.
Field Value:
2

DEREF_IN_SEARCHING

public static final int DEREF_IN_SEARCHING
Dereference aliases in subordinates of the base object in searching, but not in locating the base object of the search.
Field Value:
1

DEREF_NEVER

public static final int DEREF_NEVER
Do not dereference aliases in searching or in locating the base object of the search.
Field Value:
0

SCOPE_BASE_OBJECT

public static final int SCOPE_BASE_OBJECT
Field Value:
0

SCOPE_SINGLE_LEVEL

public static final int SCOPE_SINGLE_LEVEL
Field Value:
1

SCOPE_WHOLE_SUBTREE

public static final int SCOPE_WHOLE_SUBTREE
Field Value:
2

host

protected String host

port

protected int port

version

protected int version

Constructor Details

LDAPConnection

public LDAPConnection(String host)
            throws IOException
Creates a new LDAP connection to the specified host, using the default LDAP port.
Parameters:
host - the host

LDAPConnection

public LDAPConnection(String host,
                      int port)
            throws IOException
Creates a new LDAP connection to the specified host and port.
Parameters:
host - the host
port - the port

LDAPConnection

public LDAPConnection(String host,
                      int port,
                      int connectionTimeout,
                      int timeout)
            throws IOException
Creates a new LDAP connection to the specified host, port, and timeouts.
Parameters:
host - the host
port - the port
connectionTimeout - the connection timeout in ms
timeout - the socket I/O timeout in ms

Method Details

add

public LDAPResult add(String name,
                      AttributeValues[] attributes)
            throws IOException
Requests the addition of a new entry into the directory.
Parameters:
name - the LDAP DN of the new entry
attributes - a sequence of attributes to assign to the new entry

bind

public LDAPResult bind(String name,
                       String mechanism,
                       byte[] credentials,
                       Control[] controls)
            throws IOException
Initiates a bind operation to authenticate the client to the server.
Parameters:
name - the LDAP DN to authenticate to, or null for anonymous binding
mechanism - the SASL mechanism to use, or null for simple authentication
credentials - the security credentials to use
Returns:
the LDAP result

delete

public LDAPResult delete(String name)
            throws IOException
Requests the removal of an entry from the directory.
Parameters:
name - the LDAP DN of the entry to remove

modify

public LDAPResult modify(String name,
                         Modification[] modifications)
            throws IOException
Issues a modify request.
Parameters:
name - the LDAP DN of the object to be modified(alias dereferencing will not be performed)
modifications - a sequence of modifications to be executed to be executed
See Also:
Modification

modifyDN

public LDAPResult modifyDN(String name,
                           String newRDN,
                           boolean deleteOldRDN,
                           String newSuperior)
            throws IOException
Changes the leftmost(least significant) component of the name of an entry in the directory, or move a subtree of entries to a new location in the directory.
Parameters:
name - the LDAP DN of the entry to be changed
newRDN - the RDN that will form the leftmost component of the new name of the entry
deleteOldRDN - if false, the old RDN values will be retained as attributes of the entry, otherwise they are deleted from the entry
newSuperior - if non-null, the DN of the entry to become the immediate superior of the existing entry

search

public LDAPResult search(String name,
                         int scope,
                         int derefAliases,
                         int sizeLimit,
                         int timeLimit,
                         boolean typesOnly,
                         String filter,
                         String[] attributes,
                         Control[] controls,
                         ResultHandler handler)
            throws IOException
Issues a search request.
Parameters:
name - the LDAP DN that is the base object entry relative to which the search is to be performed
scope - the search scope, one of the SCOPE_* constants
derefAliases - whether to dereference aliases, one of the DEREF_* constants
sizeLimit - the maximum number of entries to return, or 0 for no restriction
timeLimit - the maximum time in seconds permitted for the search, or 0 for no restriction
typesOnly - whether to return only attribute types(true) or both attribute types and values(false)
filter - the search filter in RFC2254 format
attributes - the IDs of the attributes to return
controls - the request controls
handler - the result handler to receive notification of results
Returns:
the LDAP result

setVersion

public void setVersion(int version)
Sets the version of LDAP to use. This implementation supports versions 2 and 3.
Parameters:
version - the LDAP version

unbind

public void unbind()
            throws IOException
Issues an unbind request. This indicates to the server that the client has no more requests to issue and will terminate the connection. After invoking this method, no further methods may be invoked.