Hide
Login/Register to vote and to have access to more featuresYou are here: Root > Software > Development > Libraries
View the dependency graph for this librarytrivial-ldap
Created by montuori on: Tue, 17 Jan 2006 00:37:21 GMT, Last modification: Mon, 09 Apr 2007 06:51:45 GMT
TRIVIAL-LDAP is a one file, all lisp client implementation of parts of RFC 2251.
TRIVIAL-LDAP v0.80
TRIVIAL-LDAP is a one file, all Common Lisp client implementation of
parts of RFC 2261.
WARNING:
This is beta software. While I believe the API
documented below is correct it is subject to change. Also,
do
not run execute the example.lisp program against a production LDAP
directory, it will delete your entries.
Introduction
This LDAP client came about as a result of
some functionality I required for a different project altogether.
As a result it provides functionality that is general enough but
probably not in typical low-level API fashion. (For instance, a
"real" LDAP library would probably tackle the BER encoding
separately.) However, as there is a lack of Common Lisp LDAP
clients out there I thought I'd share.
I am open to both requests for features and suggestions for
improving my Lisp code. There are features I will be implementing
in the short term but for the sake of not creating false
expectations neither a comprehensive list nor timeframe is
available.
You can reach me at montuori@gmail.com.
Changes
- 2007-01-12 (v0.80)
- Converted from trivial-socket to usocket: indications
were that trivial-socket has been deprecated.
- Added support for SSL with CL+SSL. Setting the ldap
object slot
sslflag to T or
the port slot to 636 will force an encrypted
connection. Do note that this is not TLS, just ldaps://
... I don't require TLS; if you do, drop me a line.
- Added functionality to ease the pain of short slapd
idletimeouts. The ldap object
slot
reuse-connection may be set to NIL (the
default) to not attempt reopening connections, T to reopen
the connection before each request, or TRIVIAL-LDAP:REBIND
if the connection should be opened and a bind message sent
before each request (except, of course, the bind request
itself).
- A couple of documentation and logic bugs were corrected
Acknowledgments
I would like to thank Zach Beane for his
many helpful comments and suggestions. Thanks also to Ed Symanzik
for pointing out a number inconsistencies in the code and
documentation.
Also, anod to my client, Brandeis University, for not fretting too
much when I break out emacs + slime to administrate their LDAP
directories.
License
TRIVIAL-LDAP is distributed under the Clarified
Artistic License, a copy of which is included in the downloadable
package.
Requirements
TRIVIAL-LDAP has been tested under OpenMCL 1.0
(OS X/PPC), SBCL 0.9.7 (OS X/PPC), and SBCL 1.0 (OS X/Intel).
I would assume any CL that is supported by usockets and CL+SSL
would have no issues with this code. If you encounter problems
let me know.
Two external packages, usocket and CL+SSL, are required.
CL+SSL itself requires trivial-gray-streams, flexi-streams, and
cffi. These may be downloaded from:
The trivial-gray-streams project is part of the CL+SSL project.
(Note: to get CL+SSL working on OS X/Intel it was necessary to
re-compile openssl with the -m64 flag.)
Limitations
Missing functionality, as specified by RFC 2251, includes:
- UTF-8 is not implemented
- SASL authentication is not implemented
- controls are not implemented
- extended DN searches are not implemented
- referrals are not followed
- extended request/response is not implemented
I do not require this functionality myself, but if there was
interest I would consider augmenting TRIVIAL-LDAP with some of
this missing functionality.
Compatible Implementations
SBCL | OpenMCL
CL+SSL | usocket
Tags
Libraries | LDAP | ANSI Standard | Open Source | Network Programming | Database
0 Notes and 0 comments
0 Notes
You must be logged to add a note
0 Comments
You must be logged to add a comment