Ruby/LDAP is an extension module for Ruby. It provides the interface to some LDAP libraries (for example, OpenLDAP, UMich LDAP, Netscape SDK and ActiveDirectory). The common API for application development is described in RFC1823 and most libraries comply with it. Ruby/LDAP supports those libraries.
Takaaki Tateishi wrote and maintained the library up to and including version 0.8.3. Since version 0.8.4, it has been maintained by Ian Macdonald.
Changes in 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 fixed.
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.
Changes in 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.
LDAP::Conn#sasl_bind now returns nil when a block is passed to it, not self.
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.
Changes in 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 performed.