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 String
OID_GSSAPI_KERBEROS_V
The OID for the Kerberos V GSSAPI mechanism.static String
OID_NOTICE_OF_DISCONNECTION
The OID for the LDAP notice of disconnection extended operation.static byte
OP_TYPE_ABANDON_REQUEST
The protocol op type for abandon requests.static byte
OP_TYPE_ADD_REQUEST
The protocol op type for add requests.static byte
OP_TYPE_ADD_RESPONSE
The protocol op type for add responses.static byte
OP_TYPE_BIND_REQUEST
The protocol op type for bind requests.static byte
OP_TYPE_BIND_RESPONSE
The protocol op type for bind responses.static byte
OP_TYPE_COMPARE_REQUEST
The protocol op type for compare requests.static byte
OP_TYPE_COMPARE_RESPONSE
The protocol op type for compare responses.static byte
OP_TYPE_DELETE_REQUEST
The protocol op type for delete requests.static byte
OP_TYPE_DELETE_RESPONSE
The protocol op type for delete responses.static byte
OP_TYPE_EXTENDED_REQUEST
The protocol op type for extended requests.static byte
OP_TYPE_EXTENDED_RESPONSE
The protocol op type for extended responses.static byte
OP_TYPE_INTERMEDIATE_RESPONSE
The protocol op type for intermediate responses.static byte
OP_TYPE_MODIFY_DN_REQUEST
The protocol op type for modify DN requests.static byte
OP_TYPE_MODIFY_DN_RESPONSE
The protocol op type for modify DN responses.static byte
OP_TYPE_MODIFY_REQUEST
The protocol op type for modify requests.static byte
OP_TYPE_MODIFY_RESPONSE
The protocol op type for modify responses.static byte
OP_TYPE_SEARCH_REQUEST
The protocol op type for search requests.static byte
OP_TYPE_SEARCH_RESULT_DONE
The protocol op type for search result done elements.static byte
OP_TYPE_SEARCH_RESULT_ENTRY
The protocol op type for search result entries.static byte
OP_TYPE_SEARCH_RESULT_REFERENCE
The protocol op type for search result references.static byte
OP_TYPE_UNBIND_REQUEST
The protocol op type for unbind requests.static byte
TYPE_AUTHENTICATION_SASL
The BER type to use for the AuthenticationChoice element in a bind request when SASL authentication is to be used.static byte
TYPE_AUTHENTICATION_SIMPLE
The BER type to use for the AuthenticationChoice element in a bind request when simple authentication is to be used.static byte
TYPE_CONTROL_SEQUENCE
The BER type to use for encoding the sequence of controls in an LDAP message.static byte
TYPE_EXTENDED_REQUEST_OID
The BER type to use for the OID of an extended request.static byte
TYPE_EXTENDED_REQUEST_VALUE
The BER type to use for the value of an extended request.static byte
TYPE_EXTENDED_RESPONSE_OID
The BER type to use for the OID of an extended response.static byte
TYPE_EXTENDED_RESPONSE_VALUE
The BER type to use for the value of an extended response.static byte
TYPE_FILTER_AND
The BER type to use for AND filter components.static byte
TYPE_FILTER_APPROXIMATE
The BER type to use for approximate filter components.static byte
TYPE_FILTER_EQUALITY
The BER type to use for equality filter components.static byte
TYPE_FILTER_EXTENSIBLE_MATCH
The BER type to use for extensible matching filter components.static byte
TYPE_FILTER_GREATER_OR_EQUAL
The BER type to use for greater than or equal to filter components.static byte
TYPE_FILTER_LESS_OR_EQUAL
The BER type to use for less than or equal to filter components.static byte
TYPE_FILTER_NOT
The BER type to use for NOT filter components.static byte
TYPE_FILTER_OR
The BER type to use for OR filter components.static byte
TYPE_FILTER_PRESENCE
The BER type to use for presence filter components.static byte
TYPE_FILTER_SUBSTRING
The BER type to use for substring filter components.static byte
TYPE_INTERMEDIATE_RESPONSE_OID
The BER type to use for the OID of an intermediate response message.static byte
TYPE_INTERMEDIATE_RESPONSE_VALUE
The BER type to use for the value of an intermediate response message.static byte
TYPE_MATCHING_RULE_DN_ATTRIBUTES
The BER type to use for the DN attributes flag in a matching rule assertion.static byte
TYPE_MATCHING_RULE_ID
The BER type to use for the matching rule OID in a matching rule assertion.static byte
TYPE_MATCHING_RULE_TYPE
The BER type to use for the attribute type in a matching rule assertion.static byte
TYPE_MATCHING_RULE_VALUE
The BER type to use for the assertion value in a matching rule assertion.static byte
TYPE_MODIFY_DN_NEW_SUPERIOR
The BER type to use for the newSuperior component of a modify DN request.static byte
TYPE_REFERRAL_SEQUENCE
The BER type to use for encoding the sequence of referral URLs in an LDAPResult element.static byte
TYPE_SERVER_SASL_CREDENTIALS
The BER type to use for the server SASL credentials in a bind response.static byte
TYPE_SUBANY
The BER type to use for the subAny component(s) of a substring filter.static byte
TYPE_SUBFINAL
The BER type to use for the subFinal components of a substring filter.static byte
TYPE_SUBINITIAL
The 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 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.static LdapWriter
getWriter(Asn1Writer asn1Writer, int ldapVersion)
Creates a new LDAP writer which will write LDAP messages to the provided ASN.1 writer.static Attribute
readAttribute(Asn1Reader reader, DecodeOptions options, Schema schema)
Reads the next ASN.1 element from the providedASN1Reader
as anAttribute
.static Control
readControl(Asn1Reader reader)
Reads the next ASN.1 element from the providedASN1Reader
as aControl
.static Entry
readEntry(Asn1Reader reader, DecodeOptions options)
Reads the next ASN.1 element from the providedASN1Reader
as anEntry
.static Filter
readFilter(Asn1Reader reader)
Reads the next ASN.1 element from the providedASN1Reader
as aFilter
using a maximum filter depth of 100.static Filter
readFilter(Asn1Reader reader, int maxFilterDepth)
Reads the next ASN.1 element from the providedASN1Reader
as aFilter
using the provided maximum filter depth.static Modification
readModification(Asn1Reader reader, DecodeOptions options, Schema schema)
Reads the next ASN.1 element from the providedASN1Reader
as aModification
.static byte
requestToResponseProtocolOpType(byte requestProtocolOpType)
Returns the response protocol operation type associated to the given request protocol op.static void
writeAttribute(Asn1Writer writer, Attribute attribute)
Writes anAttribute
to the providedAsn1Writer
.static void
writeEntry(Asn1Writer writer, Entry entry)
Writes anEntry
to the providedAsn1Writer
.static void
writeFilter(Asn1Writer writer, Filter filter)
Writes aFilter
to the providedAsn1Writer
.static void
writeModification(Asn1Writer writer, Modification modification)
Writes anModification
to 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
- ifrequestProtocolOpType
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 providedASN1Reader
as aControl
.- Parameters:
reader
- TheASN1Reader
from which the ASN.1 encodedControl
should 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 providedASN1Reader
as aFilter
using a maximum filter depth of 100. The maximum filter depth can prevent stack overflow errors from filters that look like(&(&(&(&(&(&(&(&(&....
.- Parameters:
reader
- TheASN1Reader
from which the ASN.1 encodedFilter
should 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 providedASN1Reader
as aFilter
using the provided maximum filter depth. The maximum filter depth can prevent stack overflow errors from filters that look like(&(&(&(&(&(&(&(&(&....
.- Parameters:
reader
- TheASN1Reader
from which the ASN.1 encodedFilter
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 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 providedASN1Reader
as anEntry
.- Parameters:
reader
- TheASN1Reader
from which the ASN.1 encodedEntry
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 fromreader
.
-
writeFilter
public static void writeFilter(Asn1Writer writer, Filter filter) throws IOException
Writes aFilter
to the providedAsn1Writer
.- Parameters:
writer
- TheAsn1Writer
to which the ASN.1 encodedFilter
should 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 anEntry
to the providedAsn1Writer
.- Parameters:
writer
- TheAsn1Writer
to which the ASN.1 encodedEntry
should 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 providedASN1Reader
as aModification
.- Parameters:
reader
- TheASN1Reader
from which the ASN.1 encodedModification
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 fromreader
.
-
readAttribute
public static Attribute readAttribute(Asn1Reader reader, DecodeOptions options, Schema schema) throws IOException
Reads the next ASN.1 element from the providedASN1Reader
as anAttribute
.- Parameters:
reader
- TheASN1Reader
from which the ASN.1 encodedAttribute
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 fromreader
.
-
writeModification
public static void writeModification(Asn1Writer writer, Modification modification) throws IOException
Writes anModification
to the providedAsn1Writer
.- Parameters:
writer
- TheAsn1Writer
to which the ASN.1 encodedModification
should 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 anAttribute
to the providedAsn1Writer
.- Parameters:
writer
- TheAsn1Writer
to which the ASN.1 encodedAttribute
should be written.attribute
- The attribute.- Throws:
IOException
- If an error occurs while writing towriter
.
-
-