Class Ldap

java.lang.Object
org.forgerock.opendj.io.Ldap

public final class Ldap extends Object
This class contains various static utility methods encoding and decoding LDAP protocol elements.
See Also:
  • Field Details

    • OID_GSSAPI_KERBEROS_V

      public static final String OID_GSSAPI_KERBEROS_V
      The OID for the Kerberos V GSSAPI mechanism.
      See Also:
    • OID_NOTICE_OF_DISCONNECTION

      public static final String OID_NOTICE_OF_DISCONNECTION
      The OID for the LDAP notice of disconnection extended operation.
      See Also:
    • OP_TYPE_ABANDON_REQUEST

      public static final byte OP_TYPE_ABANDON_REQUEST
      The protocol op type for abandon requests.
      See Also:
    • OP_TYPE_ADD_REQUEST

      public static final byte OP_TYPE_ADD_REQUEST
      The protocol op type for add requests.
      See Also:
    • OP_TYPE_ADD_RESPONSE

      public static final byte OP_TYPE_ADD_RESPONSE
      The protocol op type for add responses.
      See Also:
    • OP_TYPE_BIND_REQUEST

      public static final byte OP_TYPE_BIND_REQUEST
      The protocol op type for bind requests.
      See Also:
    • OP_TYPE_BIND_RESPONSE

      public static final byte OP_TYPE_BIND_RESPONSE
      The protocol op type for bind responses.
      See Also:
    • OP_TYPE_COMPARE_REQUEST

      public static final byte OP_TYPE_COMPARE_REQUEST
      The protocol op type for compare requests.
      See Also:
    • OP_TYPE_COMPARE_RESPONSE

      public static final byte OP_TYPE_COMPARE_RESPONSE
      The protocol op type for compare responses.
      See Also:
    • OP_TYPE_DELETE_REQUEST

      public static final byte OP_TYPE_DELETE_REQUEST
      The protocol op type for delete requests.
      See Also:
    • OP_TYPE_DELETE_RESPONSE

      public static final byte OP_TYPE_DELETE_RESPONSE
      The protocol op type for delete responses.
      See Also:
    • OP_TYPE_EXTENDED_REQUEST

      public static final byte OP_TYPE_EXTENDED_REQUEST
      The protocol op type for extended requests.
      See Also:
    • OP_TYPE_EXTENDED_RESPONSE

      public static final byte OP_TYPE_EXTENDED_RESPONSE
      The protocol op type for extended responses.
      See Also:
    • OP_TYPE_INTERMEDIATE_RESPONSE

      public static final byte OP_TYPE_INTERMEDIATE_RESPONSE
      The protocol op type for intermediate responses.
      See Also:
    • OP_TYPE_MODIFY_DN_REQUEST

      public static final byte OP_TYPE_MODIFY_DN_REQUEST
      The protocol op type for modify DN requests.
      See Also:
    • OP_TYPE_MODIFY_DN_RESPONSE

      public static final byte OP_TYPE_MODIFY_DN_RESPONSE
      The protocol op type for modify DN responses.
      See Also:
    • OP_TYPE_MODIFY_REQUEST

      public static final byte OP_TYPE_MODIFY_REQUEST
      The protocol op type for modify requests.
      See Also:
    • OP_TYPE_MODIFY_RESPONSE

      public static final byte OP_TYPE_MODIFY_RESPONSE
      The protocol op type for modify responses.
      See Also:
    • OP_TYPE_SEARCH_REQUEST

      public static final byte OP_TYPE_SEARCH_REQUEST
      The protocol op type for search requests.
      See Also:
    • OP_TYPE_SEARCH_RESULT_DONE

      public static final byte OP_TYPE_SEARCH_RESULT_DONE
      The protocol op type for search result done elements.
      See Also:
    • OP_TYPE_SEARCH_RESULT_ENTRY

      public static final byte OP_TYPE_SEARCH_RESULT_ENTRY
      The protocol op type for search result entries.
      See Also:
    • OP_TYPE_SEARCH_RESULT_REFERENCE

      public static final byte OP_TYPE_SEARCH_RESULT_REFERENCE
      The protocol op type for search result references.
      See Also:
    • OP_TYPE_UNBIND_REQUEST

      public static final byte OP_TYPE_UNBIND_REQUEST
      The protocol op type for unbind requests.
      See Also:
    • TYPE_AUTHENTICATION_SASL

      public static final byte TYPE_AUTHENTICATION_SASL
      The BER type to use for the AuthenticationChoice element in a bind request when SASL authentication is to be used.
      See Also:
    • TYPE_AUTHENTICATION_SIMPLE

      public static final byte TYPE_AUTHENTICATION_SIMPLE
      The BER type to use for the AuthenticationChoice element in a bind request when simple authentication is to be used.
      See Also:
    • TYPE_CONTROL_SEQUENCE

      public static final byte TYPE_CONTROL_SEQUENCE
      The BER type to use for encoding the sequence of controls in an LDAP message.
      See Also:
    • TYPE_EXTENDED_REQUEST_OID

      public static final byte TYPE_EXTENDED_REQUEST_OID
      The BER type to use for the OID of an extended request.
      See Also:
    • TYPE_EXTENDED_REQUEST_VALUE

      public static final byte TYPE_EXTENDED_REQUEST_VALUE
      The BER type to use for the value of an extended request.
      See Also:
    • TYPE_EXTENDED_RESPONSE_OID

      public static final byte TYPE_EXTENDED_RESPONSE_OID
      The BER type to use for the OID of an extended response.
      See Also:
    • TYPE_EXTENDED_RESPONSE_VALUE

      public static final byte TYPE_EXTENDED_RESPONSE_VALUE
      The BER type to use for the value of an extended response.
      See Also:
    • TYPE_FILTER_AND

      public static final byte TYPE_FILTER_AND
      The BER type to use for AND filter components.
      See Also:
    • TYPE_FILTER_APPROXIMATE

      public static final byte TYPE_FILTER_APPROXIMATE
      The BER type to use for approximate filter components.
      See Also:
    • TYPE_FILTER_EQUALITY

      public static final byte TYPE_FILTER_EQUALITY
      The BER type to use for equality filter components.
      See Also:
    • TYPE_FILTER_EXTENSIBLE_MATCH

      public static final byte TYPE_FILTER_EXTENSIBLE_MATCH
      The BER type to use for extensible matching filter components.
      See Also:
    • TYPE_FILTER_GREATER_OR_EQUAL

      public static final byte TYPE_FILTER_GREATER_OR_EQUAL
      The BER type to use for greater than or equal to filter components.
      See Also:
    • TYPE_FILTER_LESS_OR_EQUAL

      public static final byte TYPE_FILTER_LESS_OR_EQUAL
      The BER type to use for less than or equal to filter components.
      See Also:
    • TYPE_FILTER_NOT

      public static final byte TYPE_FILTER_NOT
      The BER type to use for NOT filter components.
      See Also:
    • TYPE_FILTER_OR

      public static final byte TYPE_FILTER_OR
      The BER type to use for OR filter components.
      See Also:
    • TYPE_FILTER_PRESENCE

      public static final byte TYPE_FILTER_PRESENCE
      The BER type to use for presence filter components.
      See Also:
    • TYPE_FILTER_SUBSTRING

      public static final byte TYPE_FILTER_SUBSTRING
      The BER type to use for substring filter components.
      See Also:
    • TYPE_INTERMEDIATE_RESPONSE_OID

      public static final byte TYPE_INTERMEDIATE_RESPONSE_OID
      The BER type to use for the OID of an intermediate response message.
      See Also:
    • TYPE_INTERMEDIATE_RESPONSE_VALUE

      public static final byte TYPE_INTERMEDIATE_RESPONSE_VALUE
      The BER type to use for the value of an intermediate response message.
      See Also:
    • TYPE_MATCHING_RULE_DN_ATTRIBUTES

      public static final byte TYPE_MATCHING_RULE_DN_ATTRIBUTES
      The BER type to use for the DN attributes flag in a matching rule assertion.
      See Also:
    • TYPE_MATCHING_RULE_ID

      public static final byte TYPE_MATCHING_RULE_ID
      The BER type to use for the matching rule OID in a matching rule assertion.
      See Also:
    • TYPE_MATCHING_RULE_TYPE

      public static final byte TYPE_MATCHING_RULE_TYPE
      The BER type to use for the attribute type in a matching rule assertion.
      See Also:
    • TYPE_MATCHING_RULE_VALUE

      public static final byte TYPE_MATCHING_RULE_VALUE
      The BER type to use for the assertion value in a matching rule assertion.
      See Also:
    • TYPE_MODIFY_DN_NEW_SUPERIOR

      public static final byte TYPE_MODIFY_DN_NEW_SUPERIOR
      The BER type to use for the newSuperior component of a modify DN request.
      See Also:
    • TYPE_REFERRAL_SEQUENCE

      public static final byte TYPE_REFERRAL_SEQUENCE
      The BER type to use for encoding the sequence of referral URLs in an LDAPResult element.
      See Also:
    • TYPE_SERVER_SASL_CREDENTIALS

      public static final byte TYPE_SERVER_SASL_CREDENTIALS
      The BER type to use for the server SASL credentials in a bind response.
      See Also:
    • TYPE_SUBANY

      public static final byte TYPE_SUBANY
      The BER type to use for the subAny component(s) of a substring filter.
      See Also:
    • TYPE_SUBFINAL

      public static final byte TYPE_SUBFINAL
      The BER type to use for the subFinal components of a substring filter.
      See Also:
    • TYPE_SUBINITIAL

      public static final byte TYPE_SUBINITIAL
      The BER type to use for the subInitial component of a substring filter.
      See Also:
  • Method Details

    • requestToResponseProtocolOpType

      public static byte requestToResponseProtocolOpType(byte requestProtocolOpType)
      Returns the response protocol operation type associated to the given request protocol op.
      Parameters:
      requestProtocolOpType - The request's protocol-op type
      Returns:
      The protocol-op type of the response associated to the given request.
      Throws:
      IllegalArgumentException - if requestProtocolOpType does not identify a request producing response.
    • getReader

      public static LdapReader getReader(Asn1Reader asn1Reader, DecodeOptions options)
      Creates a new LDAP reader which will read LDAP messages from an ASN.1 reader using the provided decoding options.
      Parameters:
      asn1Reader - The ASN.1 reader from which LDAP messages will be read.
      options - LDAP message decoding options.
      Returns:
      A new LDAP reader which will read LDAP messages from an ASN.1 reader using the provided decoding options.
    • getWriter

      public static LdapWriter getWriter(Asn1Writer asn1Writer, int ldapVersion)
      Creates a new LDAP writer which will write LDAP messages to the provided ASN.1 writer.
      Parameters:
      asn1Writer - The ASN.1 writer to which LDAP messages will be written.
      ldapVersion - Version of the protocol to use to encode the messages.
      Returns:
      A new LDAP writer which will write LDAP messages to the provided ASN.1 writer.
    • readControl

      public static Control readControl(Asn1Reader reader) throws IOException
      Reads the next ASN.1 element from the provided ASN1Reader as a Control.
      Parameters:
      reader - The ASN1Reader from which the ASN.1 encoded Control should be read.
      Returns:
      The decoded Control.
      Throws:
      IOException - If an error occurs while reading from reader.
    • readFilter

      public static Filter readFilter(Asn1Reader reader) throws IOException
      Reads the next ASN.1 element from the provided ASN1Reader as a Filter using a maximum filter depth of 100. The maximum filter depth can prevent stack overflow errors from filters that look like (&(&(&(&(&(&(&(&(&.....
      Parameters:
      reader - The ASN1Reader from which the ASN.1 encoded Filter should be read.
      Returns:
      The decoded Filter.
      Throws:
      IOException - If an error occurs while reading from reader.
      LocalizedIllegalArgumentException - If an attribute description contains invalid character, exceeds the maximum filter depth, or if the search filter has an unrecognized type.
    • readFilter

      public static Filter readFilter(Asn1Reader reader, int maxFilterDepth) throws IOException
      Reads the next ASN.1 element from the provided ASN1Reader as a Filter using the provided maximum filter depth. The maximum filter depth can prevent stack overflow errors from filters that look like (&(&(&(&(&(&(&(&(&.....
      Parameters:
      reader - The ASN1Reader from which the ASN.1 encoded Filter should be read.
      maxFilterDepth - The maximum depth to which nested search filters will be processed. This can prevent stack overflow errors from filters that look like (&(&(&(&(&(&(&(&(&.....
      Returns:
      The decoded Filter.
      Throws:
      IOException - If an error occurs while reading from reader.
      LocalizedIllegalArgumentException - If an attribute description contains invalid character, exceeds the maximum filter depth, or if the search filter has an unrecognized type.
    • readEntry

      public static Entry readEntry(Asn1Reader reader, DecodeOptions options) throws IOException
      Reads the next ASN.1 element from the provided ASN1Reader as an Entry.
      Parameters:
      reader - The ASN1Reader from which the ASN.1 encoded Entry should be read.
      options - The decode options to use when decoding the entry.
      Returns:
      The decoded Entry.
      Throws:
      IOException - If an error occurs while reading from reader.
    • writeFilter

      public static void writeFilter(Asn1Writer writer, Filter filter)
      Writes a Filter to the provided Asn1Writer.
      Parameters:
      writer - The Asn1Writer to which the ASN.1 encoded Filter should be written.
      filter - The filter.
    • writeEntry

      public static void writeEntry(Asn1Writer writer, Entry entry)
      Writes an Entry to the provided Asn1Writer.
      Parameters:
      writer - The Asn1Writer to which the ASN.1 encoded Entry should be written.
      entry - The entry.
    • readModification

      public static Modification readModification(Asn1Reader reader, DecodeOptions options, Schema schema) throws IOException
      Reads the next ASN.1 element from the provided ASN1Reader as a Modification.
      Parameters:
      reader - The ASN1Reader from which the ASN.1 encoded Modification should be read.
      options - The decode options to use when decoding the modification.
      schema - The schema
      Returns:
      The decoded Modification.
      Throws:
      IOException - If an error occurs while reading from reader.
    • readAttribute

      public static Attribute readAttribute(Asn1Reader reader, DecodeOptions options, Schema schema) throws IOException
      Reads the next ASN.1 element from the provided ASN1Reader as an Attribute.
      Parameters:
      reader - The ASN1Reader from which the ASN.1 encoded Attribute should be read.
      options - The decode options to use when decoding the attribute.
      schema - The schema
      Returns:
      The decoded Attribute.
      Throws:
      IOException - If an error occurs while reading from reader.
    • writeModification

      public static void writeModification(Asn1Writer writer, Modification modification)
      Writes an Modification to the provided Asn1Writer.
      Parameters:
      writer - The Asn1Writer to which the ASN.1 encoded Modification should be written.
      modification - The modification.
    • writeAttribute

      public static void writeAttribute(Asn1Writer writer, Attribute attribute)
      Writes an Attribute to the provided Asn1Writer.
      Parameters:
      writer - The Asn1Writer to which the ASN.1 encoded Attribute should be written.
      attribute - The attribute.