Summary
The Open Directory Service (OpenDS) project released the 0.9 version of its Java directory service implementation, offering LDAP and DSML support.
Advertisement
The Open Directory Service (OpenDS) is a Java directory service implementation project hosted on java.net. Initially a Sun project, the code base is currently available under Sun's CDDL license. The project released its 0.9 version last week, with significant new features.
In addition to being a directory server, OpenDS's goal is to offer additional directory service functionality:
The directory service includes not only the Directory Server, but also other essential directory-related services like directory proxy, virtual directory, namespace distribution and data synchronization. The Directory Server is a network-accessible database that is able to store information in a hierarchical form. Clients may communicate with it using standard network protocols (at present LDAP and DSML are supported) to retrieve and update information in a variety of ways.
The current release, however, is focused on the directory server component, and additional features are slated for post-1.0 releases. The main capabilities supported in the 0.9 release include:
Basic support for all core LDAPv3 operations, including search, bind, modify, add, delete, modify DN, compare, abandon, and extended operations.
Basic support for a number of controls, including proxied authorization, persistent search, LDAP pre-read and post-read controls, LDAP assertions, retrieving matched values, paged results, authorization identity request, password policy controls, and account usability controls.
Basic support for several SASL authentication mechanisms, including ANONYMOUS, CRAM-MD5, DIGEST-MD5, EXTERNAL, GSSAPI, and PLAIN. There is also an API to add support for new SASL mechanisms.
Support for the "Who Am I?", StartTLS, password modify, and cancel extended operations, and an API to add support for new extended operations.
A number of APIs to add components to the server, including plugins, password storage schemes, password validators, password generators, monitor providers, logging subsystems.
A DSEE-compatible access control implementation.
A full-featured password policy implementation.
A virtual attribute subsystem, including support for isMemberOf (which lists the DNs of the groups in which a user is a member), virtual static groups, and user-defined virtual attributes.
LDIF import and export capabilities.
Backend backup and restore capabilities.
Do you think it's important to have a Java implementation of a directory service? In what situations would you favor a Java-based directory implementation over a native LDAP or DSML server?