Download the JDK
Search the Tutorials
Hide the TOC
Trail: Java Naming and Directory Interface(TM).
Lesson: Advanced Topics for LDAP Users
Section: JNDI as an LDAP API
Advanced Topics for LDAP Users
LDAP v3
JNDI as an LDAP API
How LDAP Operations Map to JNDI APIs
How LDAP Error Codes Map to JNDI Exceptions
Security
Modes of Authenticating to LDAP
Authentication Mechanisms
Anonymous
Simple
SASL
Digest-MD5
SSL and Custom Sockets
More LDAP Operations
LDAP Compare
Search Results
LDAP Unsolicited Notifications
Connection Management
Creation
Closing
Pooling
Configuration
Frequently Asked Questions
Home Page > Java Naming and Directory Interface(TM). > Advanced Topics for LDAP Users
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 Operation | Corresponding JNDI Methods
> --- | ---
> bind | The 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()`.
> unbind | `Context.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.
> search | The corresponding method in the JNDI is the overloading of `DirContext.search()` that accepts a search filter (RFC 2254). See the filter example.
> modify | The corresponding method in the JNDI is the overloading of `DirContext.modifyAttributes()` that accepts an array of `DirContext.ModificationItem`s. See the Modify Attributes section for an example.
> add | The 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.
> delete | The corresponding methods in the JNDI are `Context.unbind()` and `Context.destroySubcontext()`. You can use either to remove an LDAP entry.
> modify DN/RDN | The corresponding method in the JNDI is `Context.rename()`. See the Renaming Objects section for more details.
> compare | The corresponding operation in the JNDI is a suitably constrained `DirContext.search()`. See the LDAP Compare section for an example.
> abandon | When 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 operation | The corresponding method in the JNDI is `LdapContext.extendedOperation()`. See the JNDI Tutorial for more details.

Previous page: JNDI as an LDAP API
Next page: How LDAP Error Codes Map to JNDI Exceptions