[ANN] Ruby/LDAP 0.9.1: LDAP API (RFC1823) library.


Ian Macdonald


I recently took over the development and maintenance of Ruby/LDAP from
Takaaki Tateishi. I'd like to thank him for writing Ruby/LDAP and
putting a large development effort into it over the last few years.

Version 0.9.1, released today, is the third release of Ruby/LDAP since I
took over the development and maintenance of the library. This message
is to inform you of the changes I have made since I took over from

The main highlights are the inclusion of an LDIF (RFC2849) module and
complete RDoc documentation, but a full list of changes follows below:

Release 0.9.1:

Conn#search, Conn#search2, Conn#search_ext2 and Conn#search_ext2 now
accept only nil or an array for the attrs parameter.

LDAP::Entry#[] is now an alias for LDAP::Entry#get_values.

Conn#compare and Conn#compare_ext now return either true or false,
rather than raising an LDAP::ResultError exception and indicating
success or failure in the message.

If an LDAP::Conn or LDAP::SSLConn connection becomes unbound, calling
#bind, #simple_bind or #sasl_bind now reconnects to the server using the
original parameters and then performs the bind. This allows one to
rebind using new credentials.

LDAP::Conn#bound? was throwing an exception when invoked on a Conn
object on which an explicit #unbind had been performed. This has been

Invoking LDAP::Conn#sasl_bind now sets the LDAP protocol to v3 if it is
not already so. This is required for a SASL bind.

LDAP::Conn#sasl_bind did not detect attempts to bind more than once.
This is now done.

SSLConn#open now returns a NotImplementedError exception. Previously, it
would call the same method in the superclass, which would not work.

Unused variables removed to silence gcc warnings.

More unit tests and documentation fixes.

Release 0.9.0:

There is a new, fully functional LDIF module, complete with unit tests.

In LDAP::Conn#add, LDAP::Conn#add_ext, LDAP::Conn#modify and
LDAP::Conn#modify_ext, LDAP_MOD_BVALUES should be set when passing in a
hash, in case there are mods containing binary values. This has been

LDAP::Conn#sasl_bind now returns nil when a block is passed to it, not

The LDAP module, as well as the LDAP::Conn, LDAP::SSLConn, LDAP::Entry,
LDAP::Mod, LDAP::Control and LDAP::Schema classes, now have extensive
RDoc documentation.

Release 0.8.4:

LDAP controls are now supported at the session level and passed between
client and server in the @controls attribute of LDAP::Conn objects.

LDAP::Control::encode and LDAP::Control#decode are new methods for
dealing with LDAP controls. The sample program example/pr_ctl
demonstrates their use with the Paged Results (RFC2696) extension.

Custom LDAP::Entry#inspect and LDAP::Mod#inspect methods are now
available, to provide better debugging and analysis without the need for
manual disassembly of data returned by the server.

LDAP::Conn#bound? is a new method to detect whether an LDAP::Conn object
is still bound to an LDAP server.

An exception is now raised if an attempt is made to set the LDAP
protocol version after the bind has taken place. This is illegal, but
seems to work with Active Directory servers.

The new attribute, @sasl_quiet, can be set to true on LDAP::Conn objects
to silence the text emitted by OpenLDAP when a SASL operation is

Ruby/LDAP's project page can be found here:


Its home page can be found here:


Its RDoc documentation can be found here:


Ian Macdonald | Democracy becomes a government of bullies,
System Administrator | tempered by editors. -- Ralph Waldo
(e-mail address removed) | Emerson
http://www.caliban.org |


Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads