How LDAP Operations Map to JNDI APIs

The LDAP defines a set of operations or requests (see RFC 2251). In the JNDI, these map to operations on the DirContext and LdapContext interfaces (which are sub interfaces of Context). For example, when a caller invokes a DirContext method, the LDAP service provider implements the method by sending LDAP requests to the LDAP server.

The following table shows how operations in the LDAP correspond to JNDI methods.

LDAP OperationCorresponding JNDI Methods
bindThe corresponding way of creating an initial connection to the LDAP server in the JNDI is the creation of an InitialDirContext. When the application creates an initial context, it supplies client authentication information via environment properties. To change that authentication information for an existing context, use Context.addToEnvironment() and Context.removeFromEnvironment().
unbindContext.close() is used to free resources used by a context. It differs from the LDAP "unbind" operation in that within a given service provider implementation, resources can be shared among contexts, so closing one context won't free all of the resources if those resources are being shared with another context. Make sure to close all contexts if your intent is to free all resources.
searchThe corresponding method in the JNDI is the overloading of DirContext.search() that accepts a search filter ( RFC 2254). See the filter example.
modifyThe corresponding method in the JNDI is the overloading of DirContext.modifyAttributes() that accepts an array of DirContext.ModificationItems. See the Modify Attributes section for an example.
addThe corresponding methods in the JNDI are DirContext.bind() and DirContext.createSubcontext(). You can use either to add a new LDAP entry. Using bind\(\) , you can specify not only a set of attributes for the new entry but also a Java object to be added along with the attributes. See the Add, replace bindings with Attributes section for an example.
deleteThe corresponding methods in the JNDI are Context.unbind() and Context.destroySubcontext(). You can use either to remove an LDAP entry.
modify DN/RDNThe corresponding method in the JNDI is Context.rename(). See the Renaming Objects section for more details.
compareThe corresponding operation in the JNDI is a suitably constrained DirContext.search(). See the LDAP Compare section for an example.
abandonWhen you close a context, all of its outstanding requests are abandoned. Similarly, when you close a NamingEnumeration, the corresponding LDAP "search" request is abandoned.
extended operationThe corresponding method in the JNDI is LdapContext.extendedOperation(). See the JNDI Tutorial for more details.