The OpenDS SDK for Java provides a high performance easy to use library of classes and interfaces for accessing and implementing LDAP Directory Services as defined in RFC 4510.

Getting started

The following example shows how the OpenDS SDK may be used to connect to a Directory Server, authenticate, and then perform a search. The search results are output as LDIF to the standard output:
    // Create an LDIF writer which will write the search results to stdout.
    final LDIFEntryWriter writer = new LDIFEntryWriter(System.out);
    Connection connection = null;
    try
    {
      // Connect and bind to the server.
      final LDAPConnectionFactory factory = new LDAPConnectionFactory("localhost", 1389);

      connection = factory.getConnection();
      connection.bind(userName, password);

      // Read the entries and output them as LDIF.
      final ConnectionEntryReader reader = connection.search(baseDN, scope, filter, attributes);
      while (reader.hasNext())
      {
        if (!reader.isReference())
        {
          // Got an entry.
          final SearchResultEntry entry = reader.readEntry();
          writer.writeComment("Search result entry: " + entry.getName().toString());
          writer.writeEntry(entry);
        }
        else
        {
          // Got a continuation reference.
          final SearchResultReference ref = reader.readReference();
          writer.writeComment("Search result reference: " + ref.getURIs().toString());
        }
      }
      writer.flush();
    }
    catch (final Exception e)
    {
      // Handle exceptions...
      System.err.println(e.getMessage());
    }
    finally
    {
      if (connection != null)
      {
        connection.close();
      }
    }

Additional examples can be found in the file examples.zip which is included with this SDK.

Creating connections

The following classes can be used to create and manage connections to LDAP Directory Servers:

Creating requests

The following classes can be used to create LDAP requests:

Using controls

Common LDAP control implementations can be found in {@link org.opends.sdk.controls}.

Core types

The following classes and interfaces represent core types:
@see RFC 4511 - Lightweight Directory Access Protocol (LDAP): The Protocol @see org.opends.sdk