Package org.forgerock.opendj.io
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:
LdapReader,LdapWriter
-
-
Field Summary
Fields Modifier and Type Field Description static StringOID_GSSAPI_KERBEROS_VThe OID for the Kerberos V GSSAPI mechanism.static StringOID_NOTICE_OF_DISCONNECTIONThe OID for the LDAP notice of disconnection extended operation.static byteOP_TYPE_ABANDON_REQUESTThe protocol op type for abandon requests.static byteOP_TYPE_ADD_REQUESTThe protocol op type for add requests.static byteOP_TYPE_ADD_RESPONSEThe protocol op type for add responses.static byteOP_TYPE_BIND_REQUESTThe protocol op type for bind requests.static byteOP_TYPE_BIND_RESPONSEThe protocol op type for bind responses.static byteOP_TYPE_COMPARE_REQUESTThe protocol op type for compare requests.static byteOP_TYPE_COMPARE_RESPONSEThe protocol op type for compare responses.static byteOP_TYPE_DELETE_REQUESTThe protocol op type for delete requests.static byteOP_TYPE_DELETE_RESPONSEThe protocol op type for delete responses.static byteOP_TYPE_EXTENDED_REQUESTThe protocol op type for extended requests.static byteOP_TYPE_EXTENDED_RESPONSEThe protocol op type for extended responses.static byteOP_TYPE_INTERMEDIATE_RESPONSEThe protocol op type for intermediate responses.static byteOP_TYPE_MODIFY_DN_REQUESTThe protocol op type for modify DN requests.static byteOP_TYPE_MODIFY_DN_RESPONSEThe protocol op type for modify DN responses.static byteOP_TYPE_MODIFY_REQUESTThe protocol op type for modify requests.static byteOP_TYPE_MODIFY_RESPONSEThe protocol op type for modify responses.static byteOP_TYPE_SEARCH_REQUESTThe protocol op type for search requests.static byteOP_TYPE_SEARCH_RESULT_DONEThe protocol op type for search result done elements.static byteOP_TYPE_SEARCH_RESULT_ENTRYThe protocol op type for search result entries.static byteOP_TYPE_SEARCH_RESULT_REFERENCEThe protocol op type for search result references.static byteOP_TYPE_UNBIND_REQUESTThe protocol op type for unbind requests.static byteTYPE_AUTHENTICATION_SASLThe BER type to use for the AuthenticationChoice element in a bind request when SASL authentication is to be used.static byteTYPE_AUTHENTICATION_SIMPLEThe BER type to use for the AuthenticationChoice element in a bind request when simple authentication is to be used.static byteTYPE_CONTROL_SEQUENCEThe BER type to use for encoding the sequence of controls in an LDAP message.static byteTYPE_EXTENDED_REQUEST_OIDThe BER type to use for the OID of an extended request.static byteTYPE_EXTENDED_REQUEST_VALUEThe BER type to use for the value of an extended request.static byteTYPE_EXTENDED_RESPONSE_OIDThe BER type to use for the OID of an extended response.static byteTYPE_EXTENDED_RESPONSE_VALUEThe BER type to use for the value of an extended response.static byteTYPE_FILTER_ANDThe BER type to use for AND filter components.static byteTYPE_FILTER_APPROXIMATEThe BER type to use for approximate filter components.static byteTYPE_FILTER_EQUALITYThe BER type to use for equality filter components.static byteTYPE_FILTER_EXTENSIBLE_MATCHThe BER type to use for extensible matching filter components.static byteTYPE_FILTER_GREATER_OR_EQUALThe BER type to use for greater than or equal to filter components.static byteTYPE_FILTER_LESS_OR_EQUALThe BER type to use for less than or equal to filter components.static byteTYPE_FILTER_NOTThe BER type to use for NOT filter components.static byteTYPE_FILTER_ORThe BER type to use for OR filter components.static byteTYPE_FILTER_PRESENCEThe BER type to use for presence filter components.static byteTYPE_FILTER_SUBSTRINGThe BER type to use for substring filter components.static byteTYPE_INTERMEDIATE_RESPONSE_OIDThe BER type to use for the OID of an intermediate response message.static byteTYPE_INTERMEDIATE_RESPONSE_VALUEThe BER type to use for the value of an intermediate response message.static byteTYPE_MATCHING_RULE_DN_ATTRIBUTESThe BER type to use for the DN attributes flag in a matching rule assertion.static byteTYPE_MATCHING_RULE_IDThe BER type to use for the matching rule OID in a matching rule assertion.static byteTYPE_MATCHING_RULE_TYPEThe BER type to use for the attribute type in a matching rule assertion.static byteTYPE_MATCHING_RULE_VALUEThe BER type to use for the assertion value in a matching rule assertion.static byteTYPE_MODIFY_DN_NEW_SUPERIORThe BER type to use for the newSuperior component of a modify DN request.static byteTYPE_REFERRAL_SEQUENCEThe BER type to use for encoding the sequence of referral URLs in an LDAPResult element.static byteTYPE_SERVER_SASL_CREDENTIALSThe BER type to use for the server SASL credentials in a bind response.static byteTYPE_SUBANYThe BER type to use for the subAny component(s) of a substring filter.static byteTYPE_SUBFINALThe BER type to use for the subFinal components of a substring filter.static byteTYPE_SUBINITIALThe BER type to use for the subInitial component of a substring filter.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static LdapReadergetReader(Asn1Reader asn1Reader, DecodeOptions options)Creates a new LDAP reader which will read LDAP messages from an ASN.1 reader using the provided decoding options.static LdapWritergetWriter(Asn1Writer asn1Writer, int ldapVersion)Creates a new LDAP writer which will write LDAP messages to the provided ASN.1 writer.static AttributereadAttribute(Asn1Reader reader, DecodeOptions options, Schema schema)Reads the next ASN.1 element from the providedASN1Readeras anAttribute.static ControlreadControl(Asn1Reader reader)Reads the next ASN.1 element from the providedASN1Readeras aControl.static EntryreadEntry(Asn1Reader reader, DecodeOptions options)Reads the next ASN.1 element from the providedASN1Readeras anEntry.static FilterreadFilter(Asn1Reader reader)Reads the next ASN.1 element from the providedASN1Readeras aFilterusing a maximum filter depth of 100.static FilterreadFilter(Asn1Reader reader, int maxFilterDepth)Reads the next ASN.1 element from the providedASN1Readeras aFilterusing the provided maximum filter depth.static ModificationreadModification(Asn1Reader reader, DecodeOptions options, Schema schema)Reads the next ASN.1 element from the providedASN1Readeras aModification.static byterequestToResponseProtocolOpType(byte requestProtocolOpType)Returns the response protocol operation type associated to the given request protocol op.static voidwriteAttribute(Asn1Writer writer, Attribute attribute)Writes anAttributeto the providedAsn1Writer.static voidwriteEntry(Asn1Writer writer, Entry entry)Writes anEntryto the providedAsn1Writer.static voidwriteFilter(Asn1Writer writer, Filter filter)Writes aFilterto the providedAsn1Writer.static voidwriteModification(Asn1Writer writer, Modification modification)Writes anModificationto the providedAsn1Writer.
-
-
-
Field Detail
-
OID_GSSAPI_KERBEROS_V
public static final String OID_GSSAPI_KERBEROS_V
The OID for the Kerberos V GSSAPI mechanism.- See Also:
- Constant Field Values
-
OID_NOTICE_OF_DISCONNECTION
public static final String OID_NOTICE_OF_DISCONNECTION
The OID for the LDAP notice of disconnection extended operation.- See Also:
- Constant Field Values
-
OP_TYPE_ABANDON_REQUEST
public static final byte OP_TYPE_ABANDON_REQUEST
The protocol op type for abandon requests.- See Also:
- Constant Field Values
-
OP_TYPE_ADD_REQUEST
public static final byte OP_TYPE_ADD_REQUEST
The protocol op type for add requests.- See Also:
- Constant Field Values
-
OP_TYPE_ADD_RESPONSE
public static final byte OP_TYPE_ADD_RESPONSE
The protocol op type for add responses.- See Also:
- Constant Field Values
-
OP_TYPE_BIND_REQUEST
public static final byte OP_TYPE_BIND_REQUEST
The protocol op type for bind requests.- See Also:
- Constant Field Values
-
OP_TYPE_BIND_RESPONSE
public static final byte OP_TYPE_BIND_RESPONSE
The protocol op type for bind responses.- See Also:
- Constant Field Values
-
OP_TYPE_COMPARE_REQUEST
public static final byte OP_TYPE_COMPARE_REQUEST
The protocol op type for compare requests.- See Also:
- Constant Field Values
-
OP_TYPE_COMPARE_RESPONSE
public static final byte OP_TYPE_COMPARE_RESPONSE
The protocol op type for compare responses.- See Also:
- Constant Field Values
-
OP_TYPE_DELETE_REQUEST
public static final byte OP_TYPE_DELETE_REQUEST
The protocol op type for delete requests.- See Also:
- Constant Field Values
-
OP_TYPE_DELETE_RESPONSE
public static final byte OP_TYPE_DELETE_RESPONSE
The protocol op type for delete responses.- See Also:
- Constant Field Values
-
OP_TYPE_EXTENDED_REQUEST
public static final byte OP_TYPE_EXTENDED_REQUEST
The protocol op type for extended requests.- See Also:
- Constant Field Values
-
OP_TYPE_EXTENDED_RESPONSE
public static final byte OP_TYPE_EXTENDED_RESPONSE
The protocol op type for extended responses.- See Also:
- Constant Field Values
-
OP_TYPE_INTERMEDIATE_RESPONSE
public static final byte OP_TYPE_INTERMEDIATE_RESPONSE
The protocol op type for intermediate responses.- See Also:
- Constant Field Values
-
OP_TYPE_MODIFY_DN_REQUEST
public static final byte OP_TYPE_MODIFY_DN_REQUEST
The protocol op type for modify DN requests.- See Also:
- Constant Field Values
-
OP_TYPE_MODIFY_DN_RESPONSE
public static final byte OP_TYPE_MODIFY_DN_RESPONSE
The protocol op type for modify DN responses.- See Also:
- Constant Field Values
-
OP_TYPE_MODIFY_REQUEST
public static final byte OP_TYPE_MODIFY_REQUEST
The protocol op type for modify requests.- See Also:
- Constant Field Values
-
OP_TYPE_MODIFY_RESPONSE
public static final byte OP_TYPE_MODIFY_RESPONSE
The protocol op type for modify responses.- See Also:
- Constant Field Values
-
OP_TYPE_SEARCH_REQUEST
public static final byte OP_TYPE_SEARCH_REQUEST
The protocol op type for search requests.- See Also:
- Constant Field Values
-
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:
- Constant Field Values
-
OP_TYPE_SEARCH_RESULT_ENTRY
public static final byte OP_TYPE_SEARCH_RESULT_ENTRY
The protocol op type for search result entries.- See Also:
- Constant Field Values
-
OP_TYPE_SEARCH_RESULT_REFERENCE
public static final byte OP_TYPE_SEARCH_RESULT_REFERENCE
The protocol op type for search result references.- See Also:
- Constant Field Values
-
OP_TYPE_UNBIND_REQUEST
public static final byte OP_TYPE_UNBIND_REQUEST
The protocol op type for unbind requests.- See Also:
- Constant Field Values
-
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:
- Constant Field Values
-
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:
- Constant Field Values
-
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:
- Constant Field Values
-
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:
- Constant Field Values
-
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:
- Constant Field Values
-
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:
- Constant Field Values
-
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:
- Constant Field Values
-
TYPE_FILTER_AND
public static final byte TYPE_FILTER_AND
The BER type to use for AND filter components.- See Also:
- Constant Field Values
-
TYPE_FILTER_APPROXIMATE
public static final byte TYPE_FILTER_APPROXIMATE
The BER type to use for approximate filter components.- See Also:
- Constant Field Values
-
TYPE_FILTER_EQUALITY
public static final byte TYPE_FILTER_EQUALITY
The BER type to use for equality filter components.- See Also:
- Constant Field Values
-
TYPE_FILTER_EXTENSIBLE_MATCH
public static final byte TYPE_FILTER_EXTENSIBLE_MATCH
The BER type to use for extensible matching filter components.- See Also:
- Constant Field Values
-
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:
- Constant Field Values
-
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:
- Constant Field Values
-
TYPE_FILTER_NOT
public static final byte TYPE_FILTER_NOT
The BER type to use for NOT filter components.- See Also:
- Constant Field Values
-
TYPE_FILTER_OR
public static final byte TYPE_FILTER_OR
The BER type to use for OR filter components.- See Also:
- Constant Field Values
-
TYPE_FILTER_PRESENCE
public static final byte TYPE_FILTER_PRESENCE
The BER type to use for presence filter components.- See Also:
- Constant Field Values
-
TYPE_FILTER_SUBSTRING
public static final byte TYPE_FILTER_SUBSTRING
The BER type to use for substring filter components.- See Also:
- Constant Field Values
-
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:
- Constant Field Values
-
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:
- Constant Field Values
-
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:
- Constant Field Values
-
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:
- Constant Field Values
-
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:
- Constant Field Values
-
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:
- Constant Field Values
-
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:
- Constant Field Values
-
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:
- Constant Field Values
-
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:
- Constant Field Values
-
TYPE_SUBANY
public static final byte TYPE_SUBANY
The BER type to use for the subAny component(s) of a substring filter.- See Also:
- Constant Field Values
-
TYPE_SUBFINAL
public static final byte TYPE_SUBFINAL
The BER type to use for the subFinal components of a substring filter.- See Also:
- Constant Field Values
-
TYPE_SUBINITIAL
public static final byte TYPE_SUBINITIAL
The BER type to use for the subInitial component of a substring filter.- See Also:
- Constant Field Values
-
-
Method Detail
-
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- ifrequestProtocolOpTypedoes 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 providedASN1Readeras aControl.- Parameters:
reader- TheASN1Readerfrom which the ASN.1 encodedControlshould be read.- Returns:
- The decoded
Control. - Throws:
IOException- If an error occurs while reading fromreader.
-
readFilter
public static Filter readFilter(Asn1Reader reader) throws IOException
Reads the next ASN.1 element from the providedASN1Readeras aFilterusing a maximum filter depth of 100. The maximum filter depth can prevent stack overflow errors from filters that look like(&(&(&(&(&(&(&(&(&.....- Parameters:
reader- TheASN1Readerfrom which the ASN.1 encodedFiltershould be read.- Returns:
- The decoded
Filter. - Throws:
IOException- If an error occurs while reading fromreader.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 providedASN1Readeras aFilterusing the provided maximum filter depth. The maximum filter depth can prevent stack overflow errors from filters that look like(&(&(&(&(&(&(&(&(&.....- Parameters:
reader- TheASN1Readerfrom which the ASN.1 encodedFiltershould 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 fromreader.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 providedASN1Readeras anEntry.- Parameters:
reader- TheASN1Readerfrom which the ASN.1 encodedEntryshould be read.options- The decode options to use when decoding the entry.- Returns:
- The decoded
Entry. - Throws:
IOException- If an error occurs while reading fromreader.
-
writeFilter
public static void writeFilter(Asn1Writer writer, Filter filter) throws IOException
Writes aFilterto the providedAsn1Writer.- Parameters:
writer- TheAsn1Writerto which the ASN.1 encodedFiltershould be written.filter- The filter.- Throws:
IOException- If an error occurs while writing towriter.
-
writeEntry
public static void writeEntry(Asn1Writer writer, Entry entry) throws IOException
Writes anEntryto the providedAsn1Writer.- Parameters:
writer- TheAsn1Writerto which the ASN.1 encodedEntryshould be written.entry- The entry.- Throws:
IOException- If an error occurs while writing towriter.
-
readModification
public static Modification readModification(Asn1Reader reader, DecodeOptions options, Schema schema) throws IOException
Reads the next ASN.1 element from the providedASN1Readeras aModification.- Parameters:
reader- TheASN1Readerfrom which the ASN.1 encodedModificationshould 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 fromreader.
-
readAttribute
public static Attribute readAttribute(Asn1Reader reader, DecodeOptions options, Schema schema) throws IOException
Reads the next ASN.1 element from the providedASN1Readeras anAttribute.- Parameters:
reader- TheASN1Readerfrom which the ASN.1 encodedAttributeshould 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 fromreader.
-
writeModification
public static void writeModification(Asn1Writer writer, Modification modification) throws IOException
Writes anModificationto the providedAsn1Writer.- Parameters:
writer- TheAsn1Writerto which the ASN.1 encodedModificationshould be written.modification- The modification.- Throws:
IOException- If an error occurs while writing towriter.
-
writeAttribute
public static void writeAttribute(Asn1Writer writer, Attribute attribute) throws IOException
Writes anAttributeto the providedAsn1Writer.- Parameters:
writer- TheAsn1Writerto which the ASN.1 encodedAttributeshould be written.attribute- The attribute.- Throws:
IOException- If an error occurs while writing towriter.
-
-