IP*Works!

ipworks
Class Ldap

java.lang.Object
  |
  +--ipworks.Ldap

public class Ldap
extends java.lang.Object

The LDAP class is used to communicate with LDAP Directory Servers using the LDAP (Lightweight Directory Access) protocol.

The LDAP class implements a standard LDAP client as specified in RFC 1777, RFC 1778, and RFC 1779.

The first step in using the control is specifying the ServerName , a DN (Distinguished Name) to bind as, and optionally a Password . Then, you can specify one or more actions for the server via the Action property. Server responses are normally received through the Result event. The only exception are search requests which result in one or more SearchResult events, followed by a final SearchComplete event.

Attributes are set and returned through attribute arrays such as AttrType and AttrValue . Other command arguments are specified through other properties. These are specified in detail in the Action property section.

Search filters are defined as strings in the SearchFilter property. The format must be a standard LDAP search string as specified in RFC 1558. Other search attributes are set in properties such as SearchScope , SearchTimeLimit , etc..

The control operates asynchronously. Server responses are retrieved only through events, and the Action property returns control immediately. This also means that you may send more than one request at a time, without waiting for previous requests to complete.


Field Summary
static int a_Abandon
           
static int a_Add
           
static int a_Bind
           
static int a_Compare
           
static int a_Delete
           
static int a_Idle
           
static int a_Modify
           
static int a_ModifyRDN
           
static int a_Search
           
static int a_Unbind
           
static int amo_Add
           
static int amo_Delete
           
static int amo_Replace
           
static int sda_Always
           
static int sda_FindingBaseObject
           
static int sda_InSearching
           
static int sda_Never
           
static int ss_BaseObject
           
static int ss_SingleLevel
           
static int ss_WholeSubtree
           
 
Constructor Summary
Ldap()
           
 
Method Summary
 void addLdapEventListener(LdapEventListener l)
           
 void fireError(int errorCode, java.lang.String description)
          Information about errors during data delivery.
 void fireResult(int messageId, java.lang.String DN, int resultCode, java.lang.String description)
          Fired for every server response, except search responses.
 void fireSearchComplete(int messageId, java.lang.String DN, int resultCode, java.lang.String description)
          Fired upon completion of a search operation.
 void fireSearchResult(int messageId, java.lang.String DN)
          Fired for every entry returned from a search operation.
 int getAbandonMessageId()
          The message id to abandon (for LDAP abandon requests).
 int getAction()
          An action code for the component.
 int getAttrCount()
          Number of attributes values for the current entry.
 int getAttrModOp(int attrIndex)
          Array of operations to apply on attributes during an LDAP modify operation.
 java.lang.String getAttrType(int attrIndex)
          Array of attribute types for the current entry.
 java.lang.String getAttrValue(int attrIndex)
          Array of attribute values for the current entry.
 java.lang.String getDN()
          The Distinguished Name used as the base for LDAP operations.
 java.lang.String getLocalHost()
          The name of the local host.
 int getMessageId()
          The message id for the next LDAP request.
 java.lang.String getNewRDN()
          The new RDN for the entry.
 java.lang.String getPassword()
          The password used to authenticate to the LDAP server.
 int getResultCode()
          The result code returned in the last server response.
 java.lang.String getResultDescription()
          The descriptive text returned in the last server response (if any).
 java.lang.String getResultDN()
          The Distinguished Name returned in the last server response (if any).
 int getSearchDerefAliases()
          Controls alias dereferencing during searching.
 java.lang.String getSearchFilter()
          A string representation of the LDAP search filter used during searches.
 int getSearchScope()
          Controls the scope of LDAP search operations.
 int getSearchSizeLimit()
          Maximum number of entries that can be returned by the next search operation.
 int getSearchTimeLimit()
          A time limit for the next search operation (in seconds).
 java.lang.String getServerName()
          The name or address of the LDAP server.
 int getServerPort()
          The server port for LDAP (default 389).
 boolean isAcceptData()
          Enables or disables data reception.
 boolean isDeleteOldRDN()
          Controls whether the old RDN should be deleted.
 boolean isSearchReturnValues()
          Controls whether the search operation returns values of attributes, or only types.
 void removeLdapEventListener(LdapEventListener l)
           
 void setAbandonMessageId(int abandonMessageId)
          The message id to abandon (for LDAP abandon requests).
 void setAcceptData(boolean acceptData)
          Enables or disables data reception.
 void setAction(int action)
          An action code for the component.
 void setAttrCount(int attrCount)
          Number of attributes values for the current entry.
 void setAttrModOp(int attrIndex, int attrModOp)
          Array of operations to apply on attributes during an LDAP modify operation.
 void setAttrType(int attrIndex, java.lang.String attrType)
          Array of attribute types for the current entry.
 void setAttrValue(int attrIndex, java.lang.String attrValue)
          Array of attribute values for the current entry.
 void setDeleteOldRDN(boolean deleteOldRDN)
          Controls whether the old RDN should be deleted.
 void setDN(java.lang.String DN)
          The Distinguished Name used as the base for LDAP operations.
 void setMessageId(int messageId)
          The message id for the next LDAP request.
 void setNewRDN(java.lang.String newRDN)
          The new RDN for the entry.
 void setPassword(java.lang.String password)
          The password used to authenticate to the LDAP server.
 void setSearchDerefAliases(int searchDerefAliases)
          Controls alias dereferencing during searching.
 void setSearchFilter(java.lang.String searchFilter)
          A string representation of the LDAP search filter used during searches.
 void setSearchReturnValues(boolean searchReturnValues)
          Controls whether the search operation returns values of attributes, or only types.
 void setSearchScope(int searchScope)
          Controls the scope of LDAP search operations.
 void setSearchSizeLimit(int searchSizeLimit)
          Maximum number of entries that can be returned by the next search operation.
 void setSearchTimeLimit(int searchTimeLimit)
          A time limit for the next search operation (in seconds).
 void setServerName(java.lang.String serverName)
          The name or address of the LDAP server.
 void setServerPort(int serverPort)
          The server port for LDAP (default 389).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

a_Idle

public static final int a_Idle

a_Bind

public static final int a_Bind

a_Unbind

public static final int a_Unbind

a_Search

public static final int a_Search

a_Modify

public static final int a_Modify

a_ModifyRDN

public static final int a_ModifyRDN

a_Add

public static final int a_Add

a_Delete

public static final int a_Delete

a_Compare

public static final int a_Compare

a_Abandon

public static final int a_Abandon

amo_Add

public static final int amo_Add

amo_Delete

public static final int amo_Delete

amo_Replace

public static final int amo_Replace

sda_Never

public static final int sda_Never

sda_InSearching

public static final int sda_InSearching

sda_FindingBaseObject

public static final int sda_FindingBaseObject

sda_Always

public static final int sda_Always

ss_BaseObject

public static final int ss_BaseObject

ss_SingleLevel

public static final int ss_SingleLevel

ss_WholeSubtree

public static final int ss_WholeSubtree
Constructor Detail

Ldap

public Ldap()
Method Detail

getAbandonMessageId

public int getAbandonMessageId()
The message id to abandon (for LDAP abandon requests). Used when an LDAP 'abandon' operation is initiated via the Action property.


setAbandonMessageId

public void setAbandonMessageId(int abandonMessageId)
                         throws IPWorksException
The message id to abandon (for LDAP abandon requests). Used when an LDAP 'abandon' operation is initiated via the Action property.


isAcceptData

public boolean isAcceptData()
Enables or disables data reception. Setting the property to False, temporarily disables data reception. Setting the property to True, reenables data reception.


setAcceptData

public void setAcceptData(boolean acceptData)
                   throws IPWorksException
Enables or disables data reception. Setting the property to False, temporarily disables data reception. Setting the property to True, reenables data reception.


getAction

public int getAction()
An action code for the component. Setting the Action property to a valid action code makes the class perform the associated action. If the action completes successfully, execution continues normally, and Action is reset to 0 (Idle). If an error happens, then an IPWorksException exception is raised.

The class operates asynchronously. Every time a value is assigned to the Action property, an LDAP request message is prepared and transmitted to the server. Then control is immediately returned to the caller. The server response (if any) will arrive through one of the class events, and will be marked with the same MessageId used for the request. This also means that multiple LDAP requests may be sent to the server, without waiting for a server response. This is very useful when bulk directory operations are performed.

The following are the possible values for the Action property and the corresponding descriptions:

a_Idle
Default action. It can also be used to interrupt the current operation.
a_Bind
Connect and bind to the directory server. If the Password property has a value, it is used for authentication. The result of the operation is returned via the Result event.
a_Unbind
Unbind from the directory server and break the connection.
a_Search
Search the directory server using the based object specified in the DN and the search filter specified in the SearchFilter property. Additional search parameters are specified through the SearchScope , SearchDerefAliases , SearchSizeLimit , SearchTimeLimit , and SearchReturnValues properties. Results are returned through zero or more SearchResult events, after which a SearchComplete event is fired.
a_Modify
Perform an LDAP 'modify' operation on the entry specified by DN . The result of the operation is returned via the Result event.
a_ModifyRDN
Perform an LDAP 'modify RDN' operation on the entry specified by DN . The result of the operation is returned via the Result event.
a_Add
Add the entry specified by DN to the directory. The result of the operation is returned via the Result event.
a_Delete
Delete the entry specified by DN from the directory. The result of the operation is returned via the Result event.
a_Compare
Compare attributes and values specified via the AttrType and AttrValue properties, with the values in the directory for the entry specified by DN . The result of the operation is returned via the Result event.
a_Abandon
Ask the server to abandon the request specified by MessageId . The result of the operation is returned via the Result event.


setAction

public void setAction(int action)
               throws IPWorksException
An action code for the component. Setting the Action property to a valid action code makes the class perform the associated action. If the action completes successfully, execution continues normally, and Action is reset to 0 (Idle). If an error happens, then an IPWorksException exception is raised.

The class operates asynchronously. Every time a value is assigned to the Action property, an LDAP request message is prepared and transmitted to the server. Then control is immediately returned to the caller. The server response (if any) will arrive through one of the class events, and will be marked with the same MessageId used for the request. This also means that multiple LDAP requests may be sent to the server, without waiting for a server response. This is very useful when bulk directory operations are performed.

The following are the possible values for the Action property and the corresponding descriptions:

a_Idle
Default action. It can also be used to interrupt the current operation.
a_Bind
Connect and bind to the directory server. If the Password property has a value, it is used for authentication. The result of the operation is returned via the Result event.
a_Unbind
Unbind from the directory server and break the connection.
a_Search
Search the directory server using the based object specified in the DN and the search filter specified in the SearchFilter property. Additional search parameters are specified through the SearchScope , SearchDerefAliases , SearchSizeLimit , SearchTimeLimit , and SearchReturnValues properties. Results are returned through zero or more SearchResult events, after which a SearchComplete event is fired.
a_Modify
Perform an LDAP 'modify' operation on the entry specified by DN . The result of the operation is returned via the Result event.
a_ModifyRDN
Perform an LDAP 'modify RDN' operation on the entry specified by DN . The result of the operation is returned via the Result event.
a_Add
Add the entry specified by DN to the directory. The result of the operation is returned via the Result event.
a_Delete
Delete the entry specified by DN from the directory. The result of the operation is returned via the Result event.
a_Compare
Compare attributes and values specified via the AttrType and AttrValue properties, with the values in the directory for the entry specified by DN . The result of the operation is returned via the Result event.
a_Abandon
Ask the server to abandon the request specified by MessageId . The result of the operation is returned via the Result event.


getAttrCount

public int getAttrCount()
Number of attributes values for the current entry. Setting AttrCount to 0 clears the AttrType and AttrValue arrays.


setAttrCount

public void setAttrCount(int attrCount)
                  throws IPWorksException
Number of attributes values for the current entry. Setting AttrCount to 0 clears the AttrType and AttrValue arrays.


getAttrModOp

public int getAttrModOp(int attrIndex)
                 throws IPWorksException
Array of operations to apply on attributes during an LDAP modify operation. Possible values include: 0 (ADD), 1 (DELETE), and 2 (REPLACE). The default operation is 'ADD'.


setAttrModOp

public void setAttrModOp(int attrIndex,
                         int attrModOp)
                  throws IPWorksException
Array of operations to apply on attributes during an LDAP modify operation. Possible values include: 0 (ADD), 1 (DELETE), and 2 (REPLACE). The default operation is 'ADD'.


getAttrType

public java.lang.String getAttrType(int attrIndex)
                             throws IPWorksException
Array of attribute types for the current entry. If the value of AttrType for a particular array index is an empty string, then the corresponding value is part of a set of values, and the attribute type for the set is specified in the nearest AttrType with a lower index that has a value other than an empty string.

The number of valid members in the array is specified by AttrCount .


setAttrType

public void setAttrType(int attrIndex,
                        java.lang.String attrType)
                 throws IPWorksException
Array of attribute types for the current entry. If the value of AttrType for a particular array index is an empty string, then the corresponding value is part of a set of values, and the attribute type for the set is specified in the nearest AttrType with a lower index that has a value other than an empty string.

The number of valid members in the array is specified by AttrCount .


getAttrValue

public java.lang.String getAttrValue(int attrIndex)
                              throws IPWorksException
Array of attribute values for the current entry. If the value is part of a set of values, the corresponding AttrType is an empty string, and the attribute type for the set is specified in the nearest AttrType with a lower index that has a value other than an empty string.

The number of valid members in the array is specified by AttrCount .


setAttrValue

public void setAttrValue(int attrIndex,
                         java.lang.String attrValue)
                  throws IPWorksException
Array of attribute values for the current entry. If the value is part of a set of values, the corresponding AttrType is an empty string, and the attribute type for the set is specified in the nearest AttrType with a lower index that has a value other than an empty string.

The number of valid members in the array is specified by AttrCount .


getDN

public java.lang.String getDN()
The Distinguished Name used as the base for LDAP operations. Also the base object during LDAP searches.

The Distinguished Name is provided in string format as specified by RFC 1779.


setDN

public void setDN(java.lang.String DN)
           throws IPWorksException
The Distinguished Name used as the base for LDAP operations. Also the base object during LDAP searches.

The Distinguished Name is provided in string format as specified by RFC 1779.


isDeleteOldRDN

public boolean isDeleteOldRDN()
Controls whether the old RDN should be deleted. Used when an LDAP 'modify' operation is initiated via the Action property.


setDeleteOldRDN

public void setDeleteOldRDN(boolean deleteOldRDN)
                     throws IPWorksException
Controls whether the old RDN should be deleted. Used when an LDAP 'modify' operation is initiated via the Action property.


getMessageId

public int getMessageId()
The message id for the next LDAP request. If a custom value is needed for MessageId , the property must be set before setting Action . The class increments MessageId automatically after each request.


setMessageId

public void setMessageId(int messageId)
                  throws IPWorksException
The message id for the next LDAP request. If a custom value is needed for MessageId , the property must be set before setting Action . The class increments MessageId automatically after each request.


getNewRDN

public java.lang.String getNewRDN()
The new RDN for the entry. Used when an LDAP 'modify' operation is initiated via the Action property.

The Distinguished Name is provided in string format as specified by RFC 1779.


setNewRDN

public void setNewRDN(java.lang.String newRDN)
               throws IPWorksException
The new RDN for the entry. Used when an LDAP 'modify' operation is initiated via the Action property.

The Distinguished Name is provided in string format as specified by RFC 1779.


getPassword

public java.lang.String getPassword()
The password used to authenticate to the LDAP server. Leave this value empty if no password is required.


setPassword

public void setPassword(java.lang.String password)
                 throws IPWorksException
The password used to authenticate to the LDAP server. Leave this value empty if no password is required.


getResultCode

public int getResultCode()
The result code returned in the last server response. This is identical to the corresponding parameter provided by the last Result , SearchResult , or SearchComplete event.


getResultDescription

public java.lang.String getResultDescription()
The descriptive text returned in the last server response (if any). This is identical to the corresponding parameter provided by the last Result , SearchResult , or SearchComplete event.


getResultDN

public java.lang.String getResultDN()
The Distinguished Name returned in the last server response (if any). This is identical to the corresponding parameter provided by the last Result , SearchResult , or SearchComplete event.


getSearchDerefAliases

public int getSearchDerefAliases()
Controls alias dereferencing during searching. Possible values are:
sda_Never
Do not dereference aliases in searching or in locating the base object of the search.
sda_InSearching
Dereference aliases in subordinates of the base object in searching, but not in locating the base object of the search.
sda_FindingBaseObject
Dereference aliases in locating the base object of the search, but not when searching subordinates of the base object.
sda_Always
Dereference aliases both in searching and in locating the base object of the search.

Default is to never dereference aliases.


setSearchDerefAliases

public void setSearchDerefAliases(int searchDerefAliases)
                           throws IPWorksException
Controls alias dereferencing during searching. Possible values are:
sda_Never
Do not dereference aliases in searching or in locating the base object of the search.
sda_InSearching
Dereference aliases in subordinates of the base object in searching, but not in locating the base object of the search.
sda_FindingBaseObject
Dereference aliases in locating the base object of the search, but not when searching subordinates of the base object.
sda_Always
Dereference aliases both in searching and in locating the base object of the search.

Default is to never dereference aliases.


getSearchFilter

public java.lang.String getSearchFilter()
A string representation of the LDAP search filter used during searches. The format of the search filters is specified by RFC 1558 and is identical to the format used by most LDAP applications.

The following are examples of search filters, as provided in the RFC:

(cn=Babs Jensen)
(!(cn=Tim Howes))
(&(objectClass=Person)(|(sn=Jensen)(cn=Babs J*)))
(o=univ*of*mich*)

The complete specification is given by the following BNF:

<filter> ::= "(" <filtercomp> ")"
<filtercomp> ::= <and> | <or> | <not> | <item>
<and> ::= "&" <filterlist>
<or> ::= "|" <filterlist>
<not> ::= "!" <filter>
<filterlist> ::= <filter> | <filter> <filterlist>
<item> ::= <simple> | <present> | <substring>
<simple> ::= <attr> <filtertype> <value>
<filtertype> ::= <equal> | <approx> | <greater> | <less>
<equal> ::= "="
<approx> ::= "~="
<greater> ::= ">="
<less> ::= "<="
<present> ::= <attr> "=*"
<substring> ::= <attr> "=" <initial> <any> <final>
<initial> ::= NULL | <value>
<any> ::= "*" <starval>
<starval> ::= NULL | <value> "*" <starval>
<final> ::= NULL | <value>

<attr> is a string representing an attribute type as defined in RFC 1777. <value> is a string representing an attribute value, or part of one, and has the form defined in RFC 1779. If a <value> must contain one of the characters '*' or '(' or ')', these characters should be escaped by preceding them with the backslash '\\' character.


setSearchFilter

public void setSearchFilter(java.lang.String searchFilter)
                     throws IPWorksException
A string representation of the LDAP search filter used during searches. The format of the search filters is specified by RFC 1558 and is identical to the format used by most LDAP applications.

The following are examples of search filters, as provided in the RFC:

(cn=Babs Jensen)
(!(cn=Tim Howes))
(&(objectClass=Person)(|(sn=Jensen)(cn=Babs J*)))
(o=univ*of*mich*)

The complete specification is given by the following BNF:

<filter> ::= "(" <filtercomp> ")"
<filtercomp> ::= <and> | <or> | <not> | <item>
<and> ::= "&" <filterlist>
<or> ::= "|" <filterlist>
<not> ::= "!" <filter>
<filterlist> ::= <filter> | <filter> <filterlist>
<item> ::= <simple> | <present> | <substring>
<simple> ::= <attr> <filtertype> <value>
<filtertype> ::= <equal> | <approx> | <greater> | <less>
<equal> ::= "="
<approx> ::= "~="
<greater> ::= ">="
<less> ::= "<="
<present> ::= <attr> "=*"
<substring> ::= <attr> "=" <initial> <any> <final>
<initial> ::= NULL | <value>
<any> ::= "*" <starval>
<starval> ::= NULL | <value> "*" <starval>
<final> ::= NULL | <value>

<attr> is a string representing an attribute type as defined in RFC 1777. <value> is a string representing an attribute value, or part of one, and has the form defined in RFC 1779. If a <value> must contain one of the characters '*' or '(' or ')', these characters should be escaped by preceding them with the backslash '\\' character.


isSearchReturnValues

public boolean isSearchReturnValues()
Controls whether the search operation returns values of attributes, or only types. If only attributes are need, disabling returning of values will enhance performance.


setSearchReturnValues

public void setSearchReturnValues(boolean searchReturnValues)
                           throws IPWorksException
Controls whether the search operation returns values of attributes, or only types. If only attributes are need, disabling returning of values will enhance performance.


getSearchScope

public int getSearchScope()
Controls the scope of LDAP search operations. Possible values are:
ss_BaseObject
Search only the base object.
ss_SingleLevel
Search only one level.
ss_WholeSubtree
Search the whole subtree.

Default is to search the whole subtree.


setSearchScope

public void setSearchScope(int searchScope)
                    throws IPWorksException
Controls the scope of LDAP search operations. Possible values are:
ss_BaseObject
Search only the base object.
ss_SingleLevel
Search only one level.
ss_WholeSubtree
Search the whole subtree.

Default is to search the whole subtree.


getSearchSizeLimit

public int getSearchSizeLimit()
Maximum number of entries that can be returned by the next search operation. This limit is provided as a hint to the directory server. A value of 0 means that no size limits are in effect for the search.


setSearchSizeLimit

public void setSearchSizeLimit(int searchSizeLimit)
                        throws IPWorksException
Maximum number of entries that can be returned by the next search operation. This limit is provided as a hint to the directory server. A value of 0 means that no size limits are in effect for the search.


getSearchTimeLimit

public int getSearchTimeLimit()
A time limit for the next search operation (in seconds). This limit is provided as a hint to the directory server. A value of 0 means that no time limits are in effect for the search.


setSearchTimeLimit

public void setSearchTimeLimit(int searchTimeLimit)
                        throws IPWorksException
A time limit for the next search operation (in seconds). This limit is provided as a hint to the directory server. A value of 0 means that no time limits are in effect for the search.


getServerName

public java.lang.String getServerName()
The name or address of the LDAP server. The ServerName property specifies the IP address (IP number in dotted internet format) or Domain Name of the directory server. It is set before a connection is attempted and cannot be changed once a connection is in progress.

If the ServerName property is set to a Domain Name, a DNS request is initiated and upon successful termination of the request, the ServerName property is set to the corresponding address. If the search is not successful, an error is returned.


setServerName

public void setServerName(java.lang.String serverName)
                   throws IPWorksException
The name or address of the LDAP server. The ServerName property specifies the IP address (IP number in dotted internet format) or Domain Name of the directory server. It is set before a connection is attempted and cannot be changed once a connection is in progress.

If the ServerName property is set to a Domain Name, a DNS request is initiated and upon successful termination of the request, the ServerName property is set to the corresponding address. If the search is not successful, an error is returned.


getServerPort

public int getServerPort()
The server port for LDAP (default 389). A valid port number (a value between 1 and 65535) is required for the connection to take place. The property must be set before a connection is attempted and cannot be changed while a connection is in progress. Any attempt to change the ServerPort while connected will fail with an error.


setServerPort

public void setServerPort(int serverPort)
                   throws IPWorksException
The server port for LDAP (default 389). A valid port number (a value between 1 and 65535) is required for the connection to take place. The property must be set before a connection is attempted and cannot be changed while a connection is in progress. Any attempt to change the ServerPort while connected will fail with an error.


getLocalHost

public java.lang.String getLocalHost()
The name of the local host. When connected, the IP address of the interface through which the connection was made. The LocalHost property contains the name of the local host as obtained by the gethostname() Winsock call.

If the class is connected, the LocalHost property shows the IP address of the interface through which the connection is made in internet dotted format (aaa.bbb.ccc.ddd). In most cases, this is the address of the local host, except for multihomed hosts (machines with more than one IP interface).


fireError

public void fireError(int errorCode,
                      java.lang.String description)
Information about errors during data delivery. (Called internally to dispatch the event.)
See Also:
LdapErrorEvent

fireResult

public void fireResult(int messageId,
                       java.lang.String DN,
                       int resultCode,
                       java.lang.String description)
Fired for every server response, except search responses. (Called internally to dispatch the event.)
See Also:
LdapResultEvent

fireSearchComplete

public void fireSearchComplete(int messageId,
                               java.lang.String DN,
                               int resultCode,
                               java.lang.String description)
Fired upon completion of a search operation. (Called internally to dispatch the event.)
See Also:
LdapSearchCompleteEvent

fireSearchResult

public void fireSearchResult(int messageId,
                             java.lang.String DN)
Fired for every entry returned from a search operation. (Called internally to dispatch the event.)
See Also:
LdapSearchResultEvent

addLdapEventListener

public void addLdapEventListener(LdapEventListener l)
                          throws java.util.TooManyListenersException

removeLdapEventListener

public void removeLdapEventListener(LdapEventListener l)

IP*Works!

Copyright (c) 1995-2000 by /n software inc. - All rights reserved.