Class SASLBindRequest

All Implemented Interfaces:
ReadOnlyLDAPRequest, Serializable
Direct Known Subclasses:
ANONYMOUSBindRequest, CRAMMD5BindRequest, DIGESTMD5BindRequest, EXTERNALBindRequest, GenericSASLBindRequest, GSSAPIBindRequest, OAUTHBEARERBindRequest, PLAINBindRequest, SCRAMBindRequest, UnboundIDCertificatePlusPasswordBindRequest, UnboundIDDeliveredOTPBindRequest, UnboundIDExternallyProcessedAuthenticationBindRequest, UnboundIDTOTPBindRequest, UnboundIDYubiKeyOTPBindRequest

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:
  • Field Details

    • 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:
  • Constructor Details

    • SASLBindRequest

      protected SASLBindRequest(@Nullable 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 Details

    • 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

      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

      @NotNull protected final BindResult sendBindRequest(@NotNull LDAPConnection connection, @Nullable String bindDN, @Nullable ASN1OctetString saslCredentials, @Nullable 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

      @NotNull protected final BindResult sendMessage(@NotNull LDAPConnection connection, @NotNull 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

      Throws:
      LDAPException
    • toCode

      public void toCode(@NotNull List<String> lineList, @NotNull 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).