com.unboundid.ldap.sdk
Class SASLBindRequest

java.lang.Object
  extended by com.unboundid.ldap.sdk.LDAPRequest
      extended by com.unboundid.ldap.sdk.BindRequest
          extended by com.unboundid.ldap.sdk.SASLBindRequest
All Implemented Interfaces:
ReadOnlyLDAPRequest, java.io.Serializable
Direct Known Subclasses:
ANONYMOUSBindRequest, CRAMMD5BindRequest, DIGESTMD5BindRequest, EXTERNALBindRequest, GenericSASLBindRequest, GSSAPIBindRequest, PLAINBindRequest

@Extensible
@ThreadSafety(level=INTERFACE_NOT_THREADSAFE)
public abstract class SASLBindRequest
extends BindRequest

This class provides an API that should be used to represent an LDAPv3 SASL bind request. A SASL bind includes a SASL mechanism name and an optional set of credentials.

See RFC 4422 for more information about the Simple Authentication and Security Layer.

See Also:
Serialized Form

Field Summary
protected static byte CRED_TYPE_SASL
          The BER type to use for the credentials element in a simple bind request protocol op.
 
Fields inherited from class com.unboundid.ldap.sdk.BindRequest
VERSION_ELEMENT
 
Constructor Summary
protected SASLBindRequest(Control[] controls)
          Creates a new SASL bind request with the provided controls.
 
Method Summary
 java.lang.String getBindType()
          Retrieves a human-readable string that describes the type of bind request.
 int getLastMessageID()
          Retrieves the message ID for the last LDAP message sent using this request.
abstract  java.lang.String getSASLMechanismName()
          Retrieves the name of the SASL mechanism used in this SASL bind request.
 void responseReceived(LDAPResponse response)
          Indicates that the provided LDAP response has been received by from the server.
protected  BindResult sendBindRequest(LDAPConnection connection, java.lang.String bindDN, ASN1OctetString saslCredentials, Control[] controls, long timeoutMillis)
          Sends an LDAP message to the directory server and waits for the response.
protected  BindResult sendMessage(LDAPConnection connection, LDAPMessage requestMessage, long timeoutMillis)
          Sends an LDAP message to the directory server and waits for the response.
 void toCode(java.util.List<java.lang.String> lineList, java.lang.String requestID, int indentSpaces, boolean includeProcessing)
          Appends a number of lines comprising the Java source code that can be used to recreate this request to the given list.
 
Methods inherited from class com.unboundid.ldap.sdk.BindRequest
duplicate, duplicate, getOperationType, getRebindRequest, process
 
Methods inherited from class com.unboundid.ldap.sdk.LDAPRequest
followReferrals, getControl, getControlList, getControls, getIntermediateResponseListener, getResponseTimeoutMillis, hasControl, hasControl, setFollowReferrals, setIntermediateResponseListener, setResponseTimeoutMillis, toString, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

CRED_TYPE_SASL

protected static final byte CRED_TYPE_SASL
The BER type to use for the credentials element in a simple bind request protocol op.

See Also:
Constant Field Values
Constructor Detail

SASLBindRequest

protected SASLBindRequest(Control[] controls)
Creates a new SASL bind request with the provided controls.

Parameters:
controls - The set of controls to include in this SASL bind request.
Method Detail

getBindType

public java.lang.String getBindType()
Retrieves a human-readable string that describes the type of bind request.

Specified by:
getBindType in class BindRequest
Returns:
A human-readable string that describes the type of bind request.

getSASLMechanismName

public abstract java.lang.String getSASLMechanismName()
Retrieves the name of the SASL mechanism used in this SASL bind request.

Returns:
The name of the SASL mechanism used in this SASL bind request.

getLastMessageID

public int getLastMessageID()
Retrieves the message ID for the last LDAP message sent using this request.

Specified by:
getLastMessageID in class LDAPRequest
Returns:
The message ID for the last LDAP message sent using this request, or -1 if it no LDAP messages have yet been sent using this request.

sendBindRequest

protected final BindResult sendBindRequest(LDAPConnection connection,
                                           java.lang.String bindDN,
                                           ASN1OctetString saslCredentials,
                                           Control[] controls,
                                           long timeoutMillis)
                                    throws LDAPException
Sends an LDAP message to the directory server and waits for the response.

Parameters:
connection - The connection to the directory server.
bindDN - The bind DN to use for the request. It should be null for most types of SASL bind requests.
saslCredentials - The SASL credentials to use for the bind request. It may be null if no credentials are required.
controls - The set of controls to include in the request. It may be null if no controls are required.
timeoutMillis - The maximum length of time in milliseconds to wait for a response, or zero if it should wait forever.
Returns:
The bind response message returned by the directory server.
Throws:
LDAPException - If a problem occurs while sending the request or reading the response, or if a timeout occurred while waiting for the response.

sendMessage

protected final BindResult sendMessage(LDAPConnection connection,
                                       LDAPMessage requestMessage,
                                       long timeoutMillis)
                                throws LDAPException
Sends an LDAP message to the directory server and waits for the response.

Parameters:
connection - The connection to the directory server.
requestMessage - The LDAP message to send to the directory server.
timeoutMillis - The maximum length of time in milliseconds to wait for a response, or zero if it should wait forever.
Returns:
The response message received from the server.
Throws:
LDAPException - If a problem occurs while sending the request or reading the response, or if a timeout occurred while waiting for the response.

responseReceived

@InternalUseOnly
public final void responseReceived(LDAPResponse response)
                            throws LDAPException
Indicates that the provided LDAP response has been received by from the server.

Parameters:
response - The LDAP response that has been received from the server. It may be null if the connection has been closed without having received any response.
Throws:
LDAPException - If a problem occurs while handling the response.

toCode

public void toCode(java.util.List<java.lang.String> lineList,
                   java.lang.String requestID,
                   int indentSpaces,
                   boolean includeProcessing)
Appends a number of lines comprising the Java source code that can be used to recreate this request to the given list.

Specified by:
toCode in interface ReadOnlyLDAPRequest
Parameters:
lineList - The list to which the source code lines should be added.
requestID - The name that should be used as an identifier for the request. If this is null or empty, then a generic ID will be used.
indentSpaces - The number of spaces that should be used to indent the generated code. It must not be negative.
includeProcessing - Indicates whether the generated code should include code required to actually process the request and handle the result (if true), or just to generate the request (if false).