The UnboundID LDAP SDK for Java is a fast, powerful, user-friendly, and completely free Java library for communicating with LDAP directory servers. It offers better performance, better ease of use, and more features than other Java-based LDAP APIs. It is actively being developed and enhanced, and commercial support is available.
The UnboundID LDAP SDK for Java is free to use and redistribute in open source or proprietary applications under the terms of any of the open source GPLv2 or LGPLv2.1 licenses, or the UnboundID Free Use License. It does not have any third-party dependencies, so a single jar file is all you need to add top-notch LDAP support to your Java application. It can also be used in conjunction with most other JVM-based languages, as well as on the Android mobile platform.
Versions of the UnboundID LDAP SDK
There are three versions of the UnboundID LDAP SDK for Java:
- The Standard Edition is a completely open source, full-featured API designed to work with any LDAPv3-compliant directory server. It provides a wide range of functionality, including support for a number of protocol extensions like controls, extended operations, and SASL mechanisms, and support for related processing like reading and writing LDIF, encoding and decoding base32 and base64, and encoding and decoding ASN.1 BER. It features powerful connection pooling, load balancing, and failover capabilities, a persistence framework that allows you to interact with LDAP entries as Java objects, a simplified framework for establishing secure connections, tools to help you test your LDAP-based applications, and much more. Most server-agnostic LDAP-enabled applications will want to use the Standard Edition of the LDAP SDK. Download the Standard Edition of the UnboundID LDAP SDK for Java.
- The Minimal Edition is a stripped-down version of the Standard Edition. It includes full support for the core LDAP protocol, but excludes many of the optional features in the Standard Edition. The Minimal Edition is primarily intended for applications that need to run in memory-constrained and space-constrained environments in which a smaller library size is preferred over more bells and whistles. Download the Minimal Edition of the UnboundID LDAP SDK for Java.
- The Commercial Edition includes everything that is in the Standard Edition, plus a lot of additional support for the UnboundID Directory Server, UnboundID Directory Proxy Server, and other UnboundID server products. Commercial Edition features include support for a number of UnboundID-specific controls, extended operations, and SASL mechanisms, as well as frameworks for interacting with server log messages, monitor entries, alert and alarm entries, and administrative tasks. For applications that are not interacting with an UnboundID Directory Server or Directory Proxy Server, the Commercial Edition does not offer any advantage over the Standard Edition. As such, the Commercial Edition is only available for customers of the UnboundID server products.
Advantages of the UnboundID LDAP SDK
Some of the key advantages of the UnboundID LDAP SDK for Java include:
- Full support for the LDAPv3 protocol as of the most recent specification update, including all operation types, intermediate response messages, the increment modification extension, and absolute true/false filters.
- Built-in support for a wide range of official and de facto standard protocol extensions, including controls, extended operations, and SASL mechanisms. The LDAP SDK also includes APIs for developing support for any custom protocol extensions that you may need but aren't included as part of the LDAP SDK.
- A very convenient and user-friendly API that reduces the amount of code you need to write in order to perform the desired operations.
- A number of security-related features to help simplify secure communication and ensure that all interaction with LDAP servers and data remains safe and available to only properly-authorized users.
- Powerful and flexible connection pooling, load balancing, and failover support to help ensure that your application keeps working flawlessly even if one or more of the directory servers becomes unavailable.
- A simple yet powerful persistence framework that allows you to interact with LDAP entries as if they were Java objects. The persistence framework works with your existing schema and directory data without any changes so that it remains compatible with other applications that may need to access it.
- Enhanced support for a number of special entry types, including the root DSE, subschema subentries, and changelog entries.
- Support for a number of related APIs, including reading and writing LDIF entries and change records (including parallelized encoding and decoding for maximum performance), base64 encoding and decoding, and ASN.1 BER encoding and decoding. There are also APIs to simplify the creation of LDAP-enabled command-line tools.
- Support for simplifying LDAP-based testing. The LDAP SDK includes an in-memory directory server is available to allow you easily create one or more simple LDAPv3-compliant servers to use in your testing frameworks. It also provides a set of utility methods for making assertions about the content stored in an LDAP directory server.
- The LDAP SDK is provided as a single self-contained jar file with no dependencies on anything outside of Java SE.
- Commercial Support is available from UnboundID.
How to Get the UnboundID LDAP SDK
As previously noted, the Commercial Edition of the LDAP SDK is only beneficial if you have access to an UnboundID Directory Server or UnboundID Directory Proxy Server, and is therefore only available to customers of those products. However, the Standard Edition and Minimal Edition packages are readily available via the following links:
The UnboundID LDAP SDK for Java is also available as a SourceForge project. The SourceForge project includes not only pre-built versions of the LDAP SDK, but also a Subversion repository that provides access to the source code, as well as mailing lists and forums that you can use to request assistance, provide feedback, and keep up to date with the latest developments.
Finally, if you prefer to use the Maven tool to manage your library dependencies, then you can get the UnboundID LDAP SDK for Java through the Maven Central Repository with a GroupId of "com.unboundid" and an ArtifactId of "unboundid-ldapsdk".