PackageDescription: LDAP


Last published: February 24, 2016 by 'tkogan'

Defines 110 Classes
Extends 113 Classes

This is a simple port of the San Joachin Delta College LDAP code into VW. The code has been moved into the NET namespace. Otherwise, the code is not changed.

1) The class structure, instance variable names, and most method names mirror their counterparts from the Netscape Java SDK. This allows enhancements to the original Java SDK to be made in the Smalltalk SDK more easily. It also allows leveraging of the original Java SDK documentation, which can currently be found at:

One major departure is that embedded classes, notably classes LDAPConnThread and ResponseControl from the original LDAPConnection class, have been created as separate regular classes. Java interfaces have been ignored in this Smalltalk implementation.

2) See the examples on the class side of class LDAPConnection. Examples are provided for various types of inquiry and searching, iterating over results, support for LDAP URLs, add/modify/delete of directory entries, schema inquiry, and so on. The examples cover most of the common uses for the SDK in typical applications.

3) For better separation and packaging of code, all user interface classes have moved to the new parcel 'LDAPTestUI'

4) The LDAP over TLS implementation is provided by Cincom LDAPS package.

Questions can be addressed to Matt Rosen (


A) Asynchronous search (i.e. specifying a batch size in the LDAPSearchConstraint other than zero) sometimes indicates that no more results are available when in fact they have just not arrived yet. Hack: Inserting a delay scaled based on the specified batch size in method


takes care of this problem (a comment for the delay appears in the appropriate location). When in doubt, use the default synchronous search.

B) Automatic following of LDAP referrals has not been tested.


"Understanding and Deploying LDAP Directory Services"
Howes, Smith, and Good
1999, MacMillan Technical Publishing
ISBN 1-57870-070-1

"LDAP Programming with Java"
By Rob Weltman, Tony Dahbura
2000, Published by Addison-Wesley
ISBN 0-20165-758-9
Detailed description of the Netscape LDAP Java Software Development Kit
by the principle implementers.

Netscape Java Directory SDK Java Programmer's Guide

Version history:
===LDAP(tkogan) 01/14/2016
- Some refactoring to allow StartTLS operation be implemented in LDAPConnection subclass
- Fixed extended operation request
=== LDAP(hguhl-1) 16-SEP-2009
- Fix infinite loop with CPU load of 100% in LDAPConnThread>>run
- Fix MNU #newFromBERTag: sent to JDAPSearchResultReference class
- Fix MNU #getValue sent to instance of BERSequence
- Fix MNU #add: sent to an instance of LDAPSearchResults
- Fix no result after searching with LDAPReferralException
- Fix MNU #next sent to nil in LDAPConnThread>>run
- Fix MNU #asString sent to a Character in CharacterArray>>tokensBasedOnAnyOf:answerTokens:
- Fix Invalid match expression in LDAPAttributeSet>>getAttribute:language:
- Reviews, optimizations, discard dead code

=== LDAP(iviews-1) 27-FEB-2004
- removed/fixed calls to non existant methods
- no more Code Critic errors in category 'bugs'
- Moved UI part into a separate package 'LDAPTestUI'

=== LDAP(cg-1) 23-MAY-2002
- Correct JDAPProtocolOp to use namespaced lookup
- Fix off-by-one error in BERObjectId
- Q&D hacks in BERElement to add support for IA5String and TeletexString

=== LDAP(5i.3) 26-MAR-01
first published on Cincom Public Repository