Class StartTlsExtendedRequest

All Implemented Interfaces:
ExtendedRequest<ExtendedResult>, ProtocolOp, Request

public final class StartTlsExtendedRequest extends AbstractExtendedRequest<StartTlsExtendedRequest,ExtendedResult> implements ExtendedRequest<ExtendedResult>
The start TLS extended request as defined in RFC 4511. The Start Transport Layer Security (StartTLS) operation's purpose is to initiate installation of a TLS layer.

Use an SslOptions when setting up LDAP options needed to use StartTLS. TrustManagers has methods you can use to set the trust manager for the SSL context builder.

See Also:
  • Field Details

  • Method Details

    • getOid

      public String getOid()
      Description copied from interface: ExtendedRequest
      Returns the numeric OID associated with this extended request.
      Specified by:
      getOid in interface ExtendedRequest<ExtendedResult>
      Specified by:
      getOid in class AbstractExtendedRequest<StartTlsExtendedRequest,ExtendedResult>
      Returns:
      The numeric OID associated with this extended request.
    • getResultDecoder

      public ExtendedResultDecoder<ExtendedResult> getResultDecoder()
      Description copied from interface: ExtendedRequest
      Returns a decoder which can be used to decoded responses to this extended request.
      Specified by:
      getResultDecoder in interface ExtendedRequest<ExtendedResult>
      Specified by:
      getResultDecoder in class AbstractExtendedRequest<StartTlsExtendedRequest,ExtendedResult>
      Returns:
      A decoder which can be used to decoded responses to this extended request.
    • getSslOptions

      public SslOptions getSslOptions()
      Returns the SslOptions that should be used when installing the TLS layer. This is only used client-side when interacting with a remove server using a Connection. In a server context, it always returns null.
      Returns:
      The SslOptions that should be used when installing the TLS layer or null if this is invoked in a server context.
    • getValue

      public ByteString getValue()
      Description copied from interface: ExtendedRequest
      Returns the value, if any, associated with this extended request. Its format is defined by the specification of this extended request.
      Specified by:
      getValue in interface ExtendedRequest<ExtendedResult>
      Specified by:
      getValue in class AbstractExtendedRequest<StartTlsExtendedRequest,ExtendedResult>
      Returns:
      The value associated with this extended request, or null if there is no value.
    • hasValue

      public boolean hasValue()
      Description copied from interface: ExtendedRequest
      Returns true if this extended request has a value. In some circumstances it may be useful to determine if a extended request has a value, without actually calculating the value and incurring any performance costs.
      Specified by:
      hasValue in interface ExtendedRequest<ExtendedResult>
      Specified by:
      hasValue in class AbstractExtendedRequest<StartTlsExtendedRequest,ExtendedResult>
      Returns:
      true if this extended request has a value, or false if there is no value.
    • setSslOptions

      public StartTlsExtendedRequest setSslOptions(SslOptions sslOptions)
      Sets the SslOptions that should be used when installing the TLS layer. This is only used client-side when interacting with a remove server using a Connection. In a server context, the sslOptions will be ignored.
      Parameters:
      sslOptions - The SslOptions that should be used when installing the TLS layer.
      Returns:
      This startTLS request.
    • toString

      public String toString()
      Overrides:
      toString in class AbstractExtendedRequest<StartTlsExtendedRequest,ExtendedResult>
    • addControl

      public final StartTlsExtendedRequest addControl(Control control)
      Description copied from interface: ProtocolOp
      Adds the provided control to this protocol-op.
      Specified by:
      addControl in interface ProtocolOp
      Parameters:
      control - The control to be added to this protocol-op.
      Returns:
      This protocol-op.
    • addControls

      public final StartTlsExtendedRequest addControls(Iterable<? extends Control> controls)
      Description copied from interface: ProtocolOp
      Adds the provided controls to this protocol-op.
      Specified by:
      addControls in interface ProtocolOp
      Parameters:
      controls - The controls to be added to this protocol-op.
      Returns:
      This protocol-op.
    • removeControls

      public final StartTlsExtendedRequest removeControls(String oid)
      Description copied from interface: ProtocolOp
      Removes all the controls having the specified OID.
      Specified by:
      removeControls in interface ProtocolOp
      Parameters:
      oid - The numeric OID of the protocol-op control to remove.
      Returns:
      This protocol-op.
    • containsControl

      public final boolean containsControl(String oid)
      Description copied from interface: ProtocolOp
      Returns true if this protocol-op contains the specified control.
      Specified by:
      containsControl in interface ProtocolOp
      Parameters:
      oid - The numeric OID of the protocol-op control.
      Returns:
      true if this protocol-op contains the specified control.
    • getControl

      public final <C extends Control> C getControl(ControlDecoder<C> decoder, DecodeOptions options) throws DecodeException
      Description copied from interface: ProtocolOp
      Decodes and returns the first control in this protocol-op having an OID corresponding to the provided control decoder.
      Specified by:
      getControl in interface ProtocolOp
      Type Parameters:
      C - The type of control to be decoded and returned.
      Parameters:
      decoder - The control decoder.
      options - The set of decode options which should be used when decoding the control.
      Returns:
      The decoded control, or null if the control is not included with this protocol-op.
      Throws:
      DecodeException - If the control could not be decoded because it was malformed in some way (e.g. the control value was missing, or its content could not be decoded).
    • getControls

      public final List<Control> getControls()
      Description copied from interface: ProtocolOp
      Returns a List containing the controls included with this protocol-op. The returned List may be modified if permitted by this protocol-op.
      Specified by:
      getControls in interface ProtocolOp
      Returns:
      A List containing the controls.