Apache Directory LDAP API™

The modern Java LDAP API

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).
This is a "schema aware" API with some convenient ways to access all types of LDAP servers, not only ApacheDS but any LDAP server.
The API is OSGI ready and extensible. New controls, schema elements and network layer could be added or used in the near future.

News

Apache Directory LDAP API 2.1.6 released posted on February 06th, 2024

The Apache Directory Team is proud to announce the availability of version 2.1.6 of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

This is a bug fix release. It correct an issue in the serialization of DSML equality filter.

Downloads are available here and the User’s Guide is there

Apache Directory LDAP API 2.1.5 released posted on October 12th, 2023

The Apache Directory Team is proud to announce the availability of version 2.1.5 of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

This is a ‘technical’ release, mostly bumping up dependencies, in order to use the latest versions of them. We needed to get this release out for the Apache Directory Server release that will come in the next few days.

Downloads are available here and the User’s Guide is there

Apache Directory LDAP API 2.1.4 released posted on August 29th, 2023

The Apache Directory Team is proud to announce the availability of version 2.1.4 of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

This is a bug fix release, it conatains a fix in the DN ancestors management, and a migration to MINA 2.2.2, which supports TLS 1.3.

Bugs:

  • DIRAPI-393 - DN comparison behavior changed after parsing ancestor

Downloads are available here and the User’s Guide is there

Apache Directory LDAP API 2.1.3 released posted on April 9th, 2023

The Apache Directory Team is proud to announce the availability of version 2.1.3 of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

This is a bug fix release, with some Schema extension to support the latest Password Policy draft:

New feature:

  • DIRAPI-385: Add a way to modify the Element in a DnNode

Improvements:

  • DIRAPI-386: The parsing of a wrong filter throws a LdapProtocolErrorException
  • DIRAPI-387: More info on PasswordException
  • DIRAPI-391: Improve the Dn parsing performance
  • DIRAPI-392: Extend the schema to support the latest PasswordPolicy RFC draft AttributeTypes

Tasks:

  • DIRAPI-389 - Issue when comparing multi-component RDNs caused by the RDN order
  • DIRAPI-390 - Upgrade commons-text as it flags the project with CVE-2022-42889

Bugs:

Downloads are available here and the User’s Guide is there

Apache Directory LDAP API 2.1.2 released posted on August 16th, 2022

The Apache Directory Team is proud to announce the availability of version 2.1.2 of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

This version is a fix, the previous version having been built with Java 11 and a wrong maven property led to a package that can’t be used with Java 8.

Downloads are available here and the User’s Guide is there.

Apache Directory LDAP API 2.1.1 released posted on August 8th, 2022

The Apache Directory Team is proud to announce the availability of version 2.1.1 of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

This version is now using MINA 2.1.1, which comes with a complete rewrite of the TLS layer. It also fixes a list of issues:

Improvement:

  • DIRAPI-352 - The Base64 implementation can be removed

Bugs:

  • DIRAPI-348 - NPE when Api decodes bind response from OpenDJ server 6.0
  • DIRAPI-369 - DSML needsBase64Encoding
  • DIRAPI-379 - NPE on ill formed error response
  • DIRAPI-380 - Binding using a DN which RDN is complex may fail

Downloads are available here and the User’s Guide is there

Apache Directory LDAP API 2.1.0 released posted on June 29th, 2021

The Apache Directory Team is proud to announce the availability of version 2.1.0 of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

This is a security enhancement release:

Improvement:

  • DIRAPI-373 - Implement SASL integrity and confidentiality layer
  • DIRAPI-374 - Consistify LdapConnectionConfig useTls and useSsl flags
  • DIRAPI-375 - Add TLSv1.3 to default protocols
  • DIRAPI-376 - Change getRootDse() to return all user and operational attibutes
  • DIRAPI-377 - Add LDAP Relax Rules Control

Downloads are available here and the User’s Guide is there

Apache Directory LDAP API 2.0.2 released posted on May 25th, 2021

The Apache Directory Team is proud to announce the availability of version 2.0.2 of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

This is a bug fix and maintenance release:

Bugs:

  • DIRAPI-358 - File Descriptor leak on connection failure with LdapConnectionTemplate
  • DIRAPI-364 - Internal Error in response when using authRequest
  • DIRAPI-365 - unable to use # pound hash sign in LDAP filters
  • DIRAPI-366 - NPE for reading Root DSE with Oracle Unified Directory
  • DIRAPI-368 - StackOverflowError when working with entries with thousands of attributes or values
  • DIRAPI-370 - LdifReader does not preserve user provided attribute name
  • DIRAPI-371 - Misleading Javadoc in Dn.add()

Improvement:

  • DIRAPI-359 - Propagate exceptions that are caught during the response handling

Wish:

  • DIRAPI-372 - Publish new Version on Maven Central to get rid of vulnerable dependency

Downloads are available here and the User’s Guide is there

Apache Directory LDAP API 2.0.1 released posted on March 26th, 2020

The Apache Directory Team is proud to announce the availability of version 2.0.1 of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

This is a bug fix release, which fixes some OSGi aspects and add a proper handling of the TreeDelete control.

Bugs :

  • DIRAPI-354 - java.lang.NoClassDefFoundError: org/apache/directory/api/i18n/I18n in osgi

Features:

  • DIRAPI-353 - Automatic-Module-Name need to be added to jar files

Downloads are available here and the User’s Guide is there

News

Apache Directory LDAP API 2.0.0 released posted on November 13th, 2019

The Apache Directory Team is proud to announce the availability of version 2.0.0 of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

This is the first GA version of the Apache LDAP API 2.0 ! It fixes an important bug in the connection management when unbinding and a coiuple of other issues :

Bugs :

  • DIRAPI-342 - Unbind breaks connection
  • DIRAPI-349 - DN with hex values aren’t parsed properly when not schema aware

Improvement :

  • DIRAPI-344 - Allow a LDIF entry loading to be accepted when the SchemaManager is in relaxed mode

Downloads are available here and the User’s Guide is there

News

Apache Directory LDAP API 2.0.0.AM4 released posted on June 9th, 2019

The Apache Directory Team is proud to announce the availability of version 2.0.0.AM4 of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

It fixes an important race condition (when closing a session, and re-binding it immediately, there might be some cancelled operations). We also benefited from a MINA release (2.1.3) which fixes a 100% CPU usage in some corner case. A couple of other minor issues have also been fixed (DIRAPI-343 and DIRAPI-328).

Downloads are available here and the User’s Guide is there

News

Apache Directory LDAP API 2.0.0.AM3 released posted on May 15th, 2019

The Apache Directory Team is proud to announce the availability of version 2.0.0.AM3 of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

It contains many fixes (37) and is needed to be able to release ApacheDS and Studio, which contains many important fixes themselves. There are some remaining issues to be fixed, but at this point, we need a release since the last one was cut 8 months ago…

Here is the list of fixed issues:

Bugs :

  • DIRAPI-109 - Attribute values should be byte[]
  • DIRAPI-117 - Refactor schema packages to decouple various aspects
  • DIRAPI-162 - The CachingNormalizer class does not cache anything
  • DIRAPI-239 - Client API exposes implementation classes of common-pools
  • DIRAPI-271 - Multi-valued RDN should allow AVAs with same attribute
  • DIRAPI-300 - Weird batchResponse when batchRequest contains grammar error
  • DIRAPI-301 - Ldaps connection trusts all certificates
  • DIRAPI-302 - DefaultAttribute NPE
  • DIRAPI-303 - If and else-if branches has the same condition
  • DIRAPI-305 - The SyncInfoValue element is not a control
  • DIRAPI-309 - NoD extended operation is not properly implemented
  • DIRAPI-314 - StartTLS operation is not correctly handled
  • DIRAPI-317 - Non thread-safe tests could lead to errors while running them
  • DIRAPI-321 - The ExtendedResponse message does not carry any value when sent back
  • DIRAPI-323 - Decoding extended operations which require a value isn’t enforcing the value to be present
  • DIRAPI-326 - Schema Import - ERR_13215_VALUE_EXPECT_STRING
  • DIRAPI-332 - Add missing hashcode method for Schema objects
  • DIRAPI-336 - GeneralizedTime issue with timezone when DST is applied

Improvements:

  • DIRAPI-99 - Build CLI wrapper around the API
  • DIRAPI-276 - RDN normalization is under efficient
  • DIRAPI-277 - Update commons pool implementation Unassigned Resolved
  • DIRAPI-310 - We most certainly don’t need a Queue in operation futures
  • DIRAPI-311 - Add RFC 5805 extended operation support
  • DIRAPI-312 - Add an explaination after the log error and message numbers
  • DIRAPI-315 - Create a faster Schema parser
  • DIRAPI-322 - Use a TLS buffer to encode requests and responses
  • DIRAPI-325 - The Asn1Decoder class is not stateless
  • DIRAPI-330 - Improve TLS handshake error handling
  • DIRAPI-331 - Remove the Decorators
  • DIRAPI-338 - Implement RFC 4525
  • DIRAPI-340 - uniqueMemberComparator does not compare DN properly

Features:

  • DIRAPI-306 - Add a Control[] parameter in operations, like what we have for lookup()

Tasks:

  • DIRAPI-74 - Complete the API documentation
  • DIRAPI-304 - Add support for the Microsoft AD extended control Policy Hints (1.2.840.113556.1.4.2239)

Dependency updates:

  • DIRAPI-313 - SCM Pointing to SVN instead of GitBox
  • DIRAPI-324 - commons-lang and commons-collections need to be updated to most recent versions
  • DIRAPI-333 - Switch to Junit 5

Downloads are available here and the User’s Guide is there

News

Apache Directory LDAP API 1.0.3 released posted on April 19th, 2019

The Apache Directory Team is proud to announce the availability of version 1.0.3 of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

This is a bug fix release that fixes an issue when using MINA 2.1.1 version: a SSL/TLS connection would stall because we were waiting on an event that MINA 2.1.1 would never produced.

Downloads are available here and the User’s Guide is there

News

Apache Directory LDAP API 2.0.0.AM2 released posted on September 3rd, 2018

The Apache Directory Team is proud to announce the availability of version 2.0.0.AM2 of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

This is a bug fix release that address a performance issue with the schema: All the SchemaObjects had their hashcode set to 0, which made it slow to fetch from a Map or a Set. That impacted Studio startup, making it slow when a user has several connections.

A couple of other issues have also been fixed.

Here are the associated JIRA tickets :

  • DIRAPI-318 - Schema elements HashCode are not computed at all
  • DIRAPI-319 - The RestrictedByItem class stores elements in a Set, expecting it to be ordered.
  • DIRAPI-291 - The Immutable schema object can’t be used

Downloads are available here and the User’s Guide is there

CVE-2018-1337: Plaintext Password Disclosure in Secured Channel

The Apache LDAP API 1.0.2 that has just been released fix a critical security issue: A bug in the way the SSL Filter was setup made it possible for another thread to use the connection before the TLS layer has been established, if the connection has already been used and put back in a pool of connections, leading to leaking any information contained in this request (including the credentials when sending a BIND request)

We urge you to switch to this version.

Downloads are available here

News

Apache Directory LDAP API 1.0.2 released posted on June 6st, 2018

The Apache Directory Team is proud to announce the availability of version 1.0.2 of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

Two security issues has been fixed :

  • A LDAPS race condition, where some clear text message could be sent over the wire, when using a connection pool

This is a critical issue, and we urge you to upgrade to Apache LDAP API 1.0.2 if you were using a previous version.

Downloads are available here and the User’s Guide is there

Apache Directory LDAP API 1.0.1 released posted on May 19th, 2018

The Apache Directory Team is proud to announce the availability of version 1.0.1 of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

Two security issues has been fixed :

  • A LDAPS race condition, where some clear text message could be sent over the wire, when using a connection pool
  • A StartTLS issue, where the establishmenent of the secured channel can’t be made, and the connection is dropped

Those are two critical issues, and we urge you to upgrade to Apache LDAP API 1.0.1 if you were using a previous version.

Downloads are available here and the User’s Guide is there

Apache Directory LDAP API 1.0.0 released posted on June 7th, 2017

The Apache Directory Team is proud to announce the availability of version 1.0.0 final of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

One critical issue has been fixed :

Bug :

  • DIRAPI-227 - Bind user dn and password sent in clear after receiving PROTOCOL_ERROR during ldaps connection

Some fixes have also been applied in the syntex-checkers, which are now immutable.

Downloads are available here and the User’s Guide is there

Apache Directory LDAP API 1.0.0-RC2 released posted on November 2nd, 2016

The Apache Directory Team is proud to announce the availability of version 1.0.0-RC2 of the Apache Directory LDAP API, the second release candidate before the GA.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

Here is the list of fixed issues :

Bugs :

  • DIRAPI-285 - ModifyPassword extended operation incorrectly expects value in ModifyResponse
  • DIRAPI-284 - DateUtils throws an exception for certain timestamps
  • DIRAPI-279 - We are using hashcode over a set in some tests, this is not reliable
  • DIRAPI-154 - Implement “online” OpenLDAP schema parsing in DefaultSchemaLoader

Improvements :

  • DIRAPI-283 - We don’t need to parse the DN when storing a name in the LDAP requests
  • DIRAPI-207 - Expose the underlying socket config

Downloads are available here and the User’s Guide is there

Apache Directory LDAP API 1.0.0-RC1 released posted on June 17th, 2016

The Apache Directory Team is proud to announce the availability of version 1.0.0-RC1 of the Apache Directory LDAP API, the first release candidate before the GA.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

Here is the list of fixed issues and added features :

Bugs :

  • DIRAPI-243 - Cannot get AttributeType from Attribute
  • DIRAPI-244 - Error in loading schema
  • DIRAPI-249 - Performance issue LDAP API 1.0.0-M31
  • DIRAPI-265 - Deserialized Dn loses bytes field resulting in null dn, treated as Root DSE when encoded in ModifyRequests
  • DIRAPI-266 - ResultCodeEnum ‘NO_SUCH_OBJECT’ should have message ‘noSuchObject’
  • DIRAPI-273 - api-ldap-net-mina bundle remains in STARTING mode
  • DIRAPI-274 - The AttributeTypeHolder.toLdif method does not convert the m-usage Attribute correctly
  • DIRAPI-275 - Many AttributeType are defined with the wrong m-usage
  • DIRAPI-280 - The LdapNetworkConnection.getTimeout() method is wrong
  • DIRAPI-245 - LdifUtils.convertToLdif(LdifEntry, int) does not honor the ‘length’ parameter fully
  • DIRAPI-258 - Add support for the Microsoft LDAP server show deleted objects control
  • DIRAPI-260 - OID can’t process nodes which are bigger than a long
  • DIRAPI-261 - OID don’t encode correctly joint-iso-itu-t arcs
  • DIRAPI-262 - misleading message “The matched Dn should not be set when the result code is one of…”

Improvements :

  • DIRAPI-282 - Detection of timeout in cursor.next()

New Features :

  • DIRAPI-269 - Add support for modular crypt format password

Tasks :

  • DIRAPI-270 - Remove the dependency on commons.io

Downloads are available here and the User’s Guide is there

Apache Directory LDAP API 1.0.0-M33 released posted on December 21th, 2015

The Apache Directory Team is proud to announce the availability of version 1.0.0-M33 of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

A bug fix releases. We have an improved version of the Ldif anonymizer that handles Change records, and a few other fixes (OID handling…)

Here is the list of fixed issues and added features :

Bugs :

  • DIRAPI-245 - LdifUtils.convertToLdif(LdifEntry, int) does not honor the ‘length’ parameter fully
  • DIRAPI-258 - Add support for the Microsoft LDAP server show deleted objects control
  • DIRAPI-260 - OID can’t process nodes which are bigger than a long
  • DIRAPI-261 - OID don’t encode correctly joint-iso-itu-t arcs
  • DIRAPI-262 - misleading message “The matched Dn should not be set when the result code is one of…”

Task :

  • DIRAPI-257 - Fix usage of default charset|locale|timezone and enable forbiddenapis check

Downloads are available here and the User’s Guide is there

Apache Directory LDAP API 1.0.0-M32 released posted on October 19th, 2015

The Apache Directory Team is proud to announce the availability of version 1.0.0-M32 of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

Another bug fix release, with some huge modifications in the way we handle Values. The SchemaManager is now propagated down to the Ava and Value classes, which causes many tests to have been fixed.

We have added a LdifAnonymizer that can swallow a Ldif File and replace the values with a random text.

We also have spent some time fixing many checkstyle violations.

Here is the list of fixed issues and added features :

Bugs :

  • DIRAPI-90 - IllegalArgumentException: factory thrown when creating LdapNetworkConnection inside OSGi
  • DIRAPI-114 - Reconsider interfaces and base classes for Registries
  • DIRAPI-118 - Use JUnit TemporaryFolder Rule
  • DIRAPI-219 - DateUtils.toGeneralizedTime does not work with some Locales
  • DIRAPI-241 - new GeneralizedTime(String) fails for fraction close to one
  • DIRAPI-246 - Error in parsing LDIF file
  • DIRAPI-252 - Compiling warnings while api-all is in dependencies
  • DIRAPI-253 - The AVA class is not handling correctly the values wrt the SchemaManager
  • DIRAPI-254 - Value<?> don’t have a apply(AttributeType) method
  • DIRAPI-255 - An escaped space at the end of a RDN will not be kept due to a bug in the ComplexDNParser

Task :

  • DIRAPI-251 - Fix violations of coding standards and enable checkstyle check

New Feature :

Question :

  • DIRAPI-191 - How to get attributes list according to objectClass

Downloads are available here and the User’s Guide is there

News

Apache Directory LDAP API 1.0.0-M31 released posted on July 5th, 2015

The Apache Directory Team is proud to announce the availability of version 1.0.0-M31 of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

This release fixes a security vulnerability, CVE-2015-3250.

Feel free to experiment, we highly appreciate your feedback !

Downloads are available here and the User’s Guide is there

News

Apache Directory LDAP API 1.0.0-M30 released posted on May 2nd, 2015

The Apache Directory Team is proud to announce the availability of version 1.0.0-M30 of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

Another bug fix release, with some critical fixes in the connection handling, and some schema modifications.

Here is the list of fixed issues :

Bugs :

  • DIRAPI-236 - Unbind during search hangs
  • DIRAPI-234 - ClassLoading issues with two classes in different packages
  • DIRAPI-231 - Wrong namespace in generated response
  • DIRAPI-230 - Connection to invalid host blocks for 30 seconds
  • DIRAPI-229 - The LdifParser lowrcase attributeType
  • DIRAPI-196 - Always throw error ERR_04486_VALUE_ALREADY_EXISTS from org.apache.directory.api.ldap.model.entry.DefaultAttribute against AD’s attribute dSCorePropagationData when do search operation.

Improvements :

  • DIRAPI-233 - OSGi: Import package range for slf4j

Tasks :

Feel free to experiment, we highly appreciate your feedback !

Downloads are available here and the User’s Guide is there

News

Apache Directory LDAP API 1.0.0-M29 released posted on April 2nd, 2015

The Apache Directory Team is proud to announce the availability of version 1.0.0-M29 of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

Another bug fix release, with a few new fonctionalities being added :

  • a LDIF anonymizer
  • VLV support

Here is the list of fixed issues :

Bugs :

  • DIRAPI-100 Implement the GSSAPI SASL Bind mechanism
  • DIRAPI-107 LdifReader missing attributes
  • DIRAPI-219 DateUtils.toGeneralizedTime does not work with some Locales
  • DIRAPI-220 The FilterEncoder.encodeFilterValue() does not accept escaped hex values like \2A
  • DIRAPI-223 The SchemaObject extension key should be case-insensitive
  • DIRAPI-226 Injecting non pure ASCII values into a HR attribute read from a LDIF does not work

Improvements :

  • DIRAPI46 Add a generic schema loader which looks for schema elements under the value of the ‘subschemaSubentry’ of the RootDSE
  • DIRAPI-225 Add a LDIF anonymizer that takes a LDIF file and replace the value with random text

New features :

Feel free to experiment, we highly appreciate your feedback !

Downloads are available here and the User’s Guide is there

News

Apache Directory LDAP API 1.0.0-M28 released posted on January 15th, 2015

The Apache Directory Team is proud to announce the availability of version 1.0.0-M28 of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

This release fixes some critical issues in the LDAP Pool under heavy load, and improved a few other areas.

Bugs :

  • DIRAPI-217 Under heavy load, the Connection Pool will not provide valid connections
  • DIRAPI-174 There is no future associated with operation message ID 333, perhaps the operation would have been completed
  • DIRAPI-184 Chain ANTLR exceptions to ParserException

Feel free to experiment, we highly appreciate your feedback !

Downloads are available here and the User’s Guide is there

News

Apache Directory LDAP API 1.0.0-M27 released posted on December 29th, 2014

The Apache Directory Team is proud to announce the availability of version 1.0.0-M27 of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

This release included a new Control : proxied-authz RFC-4370, and a major cleanup of the OSGi Manifests.

Feel free to experiment, we highly appreciate your feedback !

Downloads are available here and the User’s Guide is there

News

Apache Directory LDAP API 1.0.0-M26 released posted on November 22th, 2014

The Apache Directory Team is proud to announce the availability of version 1.0.0-M26 of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

This release is a security fix release : SSLv3 has been disabled. Another bug has also been fixed in the POM files, for those using the API in an OSGi environment

Bugs :

Feel free to experiment, we highly appreciate your feedback !

Downloads are available here and the User’s Guide is there

News

Apache Directory LDAP API 1.0.0-M25 released posted on November 11th, 2014

The Apache Directory Team is proud to announce the availability of version 1.0.0-M25 of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

Here are the release note for Apache Directory LDAP API 1.0.0-M25:

Bugs :

  • DIRAPI-137 Add Control support for RFC 2891 - LDAP Control Extension for Server Side Sorting of Search Results http://www.faqs.org/rfcs/rfc2891.html
  • DIRAPI-174 LdifReader should provide errors wih line number
  • DIRAPI-184 Supply one method in SearchCursor to judge it has element or not.
  • DIRAPI-201 Inconsistent Import-Package in org.apache.directory.api ldap.model
  • DIRAPI-205 AliasDerefMode can’t work for API when alias entries can be search out and Server is Sun Directory Server
  • DIRAPI-206 BindRequest logs exception on valid call to setter
  • DIRAPI-208 The Connection Pool is a bit too aggressive when it comes to validate connections

Feel free to experiment, we highly appreciate your feedback !

Downloads are available here and the User’s Guide is there

News

Apache Directory LDAP API 1.0.0-M24 released posted on August 2th, 2014

The Apache Directory Team is proud to announce the availability of version 1.0.0-M24 of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

Here are the release note for Apache Directory LDAP API 1.0.0-M24:

Bugs :

  • DIRAPI-197 - When dumping a BindRequest, the password is exposed
  • DIRAPI-198 - LdapConnectionTemplate closes connection after authentication rather than returning to the pool
  • DIRAPI-199 - LdapConnectionPool.getUnboundConnection is an oxymoron

Feel free to experiment, we highly appreciate your feedback !

Downloads are available here and the User’s Guide is there

News

Apache Directory LDAP API 1.0.0-M23 released posted on July 4th, 2014

The Apache Directory Team is proud to announce the availability of version 1.0.0-M23 of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

Here are the release note for Apache Directory LDAP API 1.0.0-M23:

Bugs :

  • DIRAPI-190 - Search request time limit should override connection timeout
  • DIRAPI-192 - Rdn.escapeValue() should not escape unicode characters

Improvements :

  • DIRAPI-168 - Create an LdapConnectionFactory that is not pooled to create LdapConnection objects for an LdapConnectionConfig

Feel free to experiment, we highly appreciate your feedback !

Downloads are available here and the User’s Guide is there

News

Apache Directory LDAP API 1.0.0-M22 released posted on April 22th, 2014

The Apache Directory Team is proud to announce the availability of version 1.0.0-M22 of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

Here are the release note for Apache Directory LDAP API 1.0.0-M22:

Bugs :

  • DIRAPI-156 - LdapNetworkConnection.addSchema doesn’t register attribute types
  • DIRAPI-186 - Inconsistent code definition in ResultCodeEnum.
  • DIRAPI-188 - Length encoding is not using the correct method in some of the codecs

Improvements :

New Feature :

  • DIRAPI-164 - Add fluent entry builder to AddRequest
  • DIRAPI-183 - Add support for the WhoAmI extended operation

Wish :

Feel free to experiment, we highly appreciate your feedback !

Downloads are available here and the User’s Guide is there

Apache Directory LDAP API 1.0.0-M21 released posted on March 13th, 2014

The Apache Directory Team is proud to announce the availability of version 1.0.0-M21 of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

Here are the release note for Apache Directory LDAP API 1.0.0-M21:

Bugs :

  • DIRAPI-126 - Timeout Exception on bind while pwdExpireWarning period
  • DIRAPI-128 - FilterEncoder.format() should accept String varargs
  • DIRAPI-152 - Attribute.toString() method appends newline
  • DIRAPI-157 - Calling the add() method with a multi-value attribute and a null value throws an NPE
  • DIRAPI-160 - DSML engine is not setting the ‘requestID’ value in BatchResponse when output stream instance is provided
  • DIRAPI-161 - Timeout does not apply to connect method
  • DIRAPI-173 - When using TLS and multiple binds, LdapNetworkConnection attempts to start TLS multiple times
  • DIRAPI-176 - LDIFReader does not accept empty DN (rootDSE)

Improvements :

  • DIRAPI-137 - Add Control support for RFC 2891 - LDAP Control Extension for Server Side Sorting of Search Results http://www.faqs.org/rfcs/rfc2891.html
  • DIRAPI-153 - Implement efficient reuse of schema loading
  • DIRAPI-159 - Add a method to set a SchemaManager in LdapConnection
  • DIRAPI-169 - Formalize the contract of PasswordPolicyResponse by stating that -1 is returned if no value is set.
  • DIRAPI-170 - Allow StandaloneLdapApiServices to be configured without system properties
  • DIRAPI-175 - LdifReader should handle empty

New Feature

  • DIRAPI-143 - Add Controls to support server-side sorting

Feel free to experiment, we highly appreciate your feedback !

Downloads are available here and the User’s Guide is there

Apache Directory LDAP API 1.0.0-M20 released posted on August 18th, 2013

The Apache Directory Team is proud to announce the availability of version 1.0.0-M20 of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

Here are the release note for Apache Directory LDAP API 1.0.0-M20:

Bugs

  • DIRAPI-14 - We can’t inject entries with attributes containing a null value
  • DIRAPI-98 - Add generic support for Extended operations
  • DIRAPI-120 - Deleted an attribute leads to an error
  • DIRAPI-148 - We can’t inject entries with attributes containing a null value
  • DIRAPI-151 - Result codes from extended operations are lost

New Feature

  • DIRAPI-129 - Add support for PwdModify extended operation

Feel free to experiment, we highly appreciate your feedback !

Downloads are available here and the User’s Guide is there

Apache Directory LDAP API 1.0.0-M19 released posted on July 1st, 2013

The Apache Directory Team is proud to announce the availability of version 1.0.0-M19 of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

Here are the release note for Apache Directory LDAP API 1.0.0-M19:

  • DIRAPI-148 We can’t inject entries with attributes containing a null value

Feel free to experiment, we highly appreciate your feedback !

Downloads are available here and the User’s Guide is there

Apache Directory LDAP API 1.0.0-M18 released posted on June 25th, 2013

The Apache Directory Team is proud to announce the availability of version 1.0.0-M18 of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

Here are the release note for Apache Directory LDAP API 1.0.0-M18:

  • DIRAPI-112 - Review Package Names
  • DIRAPI-130 - The extended responses are not decoded into their respective type
  • DIRAPI-132 - Add support for the StartTLS operation
  • DIRAPI-133 - Correlate an extendedResponse with its associated request, when we don’t have a responseName
  • DIRAPI-139 - o.a.d.api.ldap.codec.api.LdapEncoder should log encoded PDU via DEBUG
  • DIRAPI-140 - Test ClientSearchRequestTest.testSubDn() fails
  • DIRAPI-147 - LdifEntry equals method does not compare entry attributes when changetype is None

Feel free to experiment, we highly appreciate your feedback !

Downloads are available here and the User’s Guide is there

Apache Directory LDAP API 1.0.0-M17 released posted on May 2nd, 2013

The Apache Directory Team is proud to announce the availability of version 1.0.0-M17 of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

Here are the release note for Apache Directory LDAP API 1.0.0-M17:

  • DIRAPI-135 - The connectiosn may be invalid when we get it from the pool
  • DIRAPI-103 - the PLAIN SASL BindRequest is not supported

Feel free to experiment, we highly appreciate your feedback !

Downloads are available here and the User’s Guide is there

Apache Directory LDAP API 1.0.0-M16 released posted on March 3rd, 2013

The Apache Directory Team is proud to announce the availability of version 1.0.0-M16 of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

Here are the release note for Apache Directory LDAP API 1.0.0-M16:

  • DIRAPI-119 - Some NPE when sending some request with lacking data

Feel free to experiment, we highly appreciate your feedback !

Downloads are available here and the User’s Guide is there

Apache Directory LDAP API 1.0.0-M15 released posted on January 29th, 2013

The Apache Directory Team is proud to announce the availability of version 1.0.0-M15 of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

Here are the release note for Apache Directory LDAP API 1.0.0-M15:

Feel free to experiment, we highly appreciate your feedback !

Downloads are available here and the User’s Guide is there

Apache Directory LDAP API 1.0.0-M14 released posted on January 7th, 2013

The Apache Directory Team is proud to announce the availability of version 1.0.0-M15 of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

Here are the release note for Apache Directory LDAP API 1.0.0-M14:

  • DIRAPI-89 - EntryCursorImpl loops forever in next() when using AD Server with referrals
  • DIRAPI-92 - LdapConnectionPool should extend GenericObjectPool
  • DIRAPI-94 - Random failure of ClientAbandonRequestTest

WARNING: An important package renaming took place in this milestone. The previously named “org.apache.directory.shared” package has been renamed “org.apache.directory.api". If you were using the Apache Directory LDAP API before, please make sure to update your own code to match this important change.

Feel free to experiment, we highly appreciate your feedback !

Downloads are available here and the User’s Guide is there

Apache Directory LDAP API 1.0.0-M13 released posted on October 12th, 2012

The Apache Directory Team is proud to announce the availability of version 1.0.0-M13 of the Apache Directory LDAP API.

The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).

This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.

It’s also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It’s also OSGi capable.

Here are the release note for Apache Directory LDAP API 1.0.0-M13:

  • DIRAPI-87 - The search() method does not return the same result if it’s done with a SearchRequest or with parameters
  • DIRAPI-88 - RDN parsing fails with values containing a # character followed by other characters
  • DIRAPI-135 - LdapNetworkConnection should be thread-safe
  • DIRAPI-136 - NPE in AntlrSubtreeSpecificationParser when initialized with an empty schema manager
  • DIRAPI-137 - Logically incorrect filter construction while parsing DSML search request
  • DIRAPI-138 - Cannot transform SearchRequestDsml object to DSML format

Feel free to experiment, we highly appreciate your feedback !

Downloads are available here and the User’s Guide is there