October saw a release of Json2Ldap version 1.6 which brings updates in three areas: the web API, addition of CORS support and library upgrades. The software is now being put to serious use and I’m glad to see its popularity pick up, despite having no dedicated marketing effort behind it. I must say the whole concept of web-enabling LDAP directories with a simple JSON-RPC API is one very attractive proposition for companies offering web services, such as social networking or SaaS, as a way to provide web-exposed user storage API and authentication in a standard and web friendly fashion.
Cross-Origin Resource Sharing (CORS)
Json2Ldap now includes support for the CORS protocol that allows browsers to make cross-origin XHR requests, in the spirit of modern Ajax/Web 2.0 applications where a web application uses data and methods from several sources. CORS is now supported by most mainstream browsers, such as Firefox, IE, Chrome and Safari. The protocol is implemented by a highly flexible and configurable servlet filter, which I also offer as a separate add-on product to customers who want to add CORS to their own Java web services.
Json2LDAP API changes
Json2Ldap 1.6 also makes some minor changes to the web API, in order to make it more generic and allow for future implementation of LDAP extensions, such as password expiration controls.
- Connection identifiers (CIDs), returned by the
ldap.connectcall, are now represented by standard GUIDs (or UUIDs).
ldap.connectreturns an object where the CID values is put into a separate field.
ldap.anonymousBindreturn empty object instead of
null; this is to allow for new optional result fields in future without breaking backward compatibility.
New configuration parameter json2ldap.clients.responseContentType which sets the MIME type of Json2Ldap responses.
Many of the underlying libraries were also upgraded to recent stable versions:
- UnboundID SDK JAR to 1.1.6.
- JsonRpc2-Base JAR to 1.11.
- JsonRpc2-Proc JAR to 1.1.
- Property Util to 1.2.
Also, the JSON-RPC 2.0 Shell tool was upgraded to version 1.4.
What’s ahead? For version 1.7 I plan to add support for the simple page results control (RFC 2696). I also consider implementing the SASL external bind control, as defined in RFC 4422.