public interface ExtendedRequest extends Serializable
ExtendedRequest ::= [APPLICATION 23] SEQUENCE { requestName [0] LDAPOID, requestValue [1] OCTET STRING OPTIONAL }It comprises an object identifier string and an optional ASN.1 BER encoded value.
The methods in this class are used by the service provider to construct the bits to send to the LDAP server. Applications typically only deal with the classes that implement this interface, supplying them with any information required for a particular extended operation request. It would then pass such a class as an argument to the LdapContext.extendedOperation() method for performing the LDAPv3 extended operation.
For example, suppose the LDAP server supported a 'get time' extended operation. It would supply GetTimeRequest and GetTimeResponse classes:
A program would use then these classes as follows:public class GetTimeRequest implements ExtendedRequest { public GetTimeRequest() {... }; public ExtendedResponse createExtendedResponse(String id, byte[] berValue, int offset, int length) throws NamingException { return new GetTimeResponse(id, berValue, offset, length); } ... } public class GetTimeResponse implements ExtendedResponse { long time; public GetTimeResponse(String id, byte[] berValue, int offset, int length) throws NamingException { time = ... // decode berValue to get time } public java.util.Date getDate() { return new java.util.Date(time) }; public long getTime() { return time }; ... }
GetTimeResponse resp = (GetTimeResponse) ectx.extendedOperation(new GetTimeRequest()); long time = resp.getTime();
ExtendedResponse
,
LdapContext.extendedOperation(javax.naming.ldap.ExtendedRequest)
Modifier and Type | Method and Description |
---|---|
ExtendedResponse |
createExtendedResponse(String id,
byte[] berValue,
int offset,
int length)
Creates the response object that corresponds to this request.
|
byte[] |
getEncodedValue()
Retrieves the ASN.1 BER encoded value of the LDAP extended operation
request.
|
String |
getID()
Retrieves the object identifier of the request.
|
String getID()
byte[] getEncodedValue()
IllegalStateException
- If the encoded value cannot be retrieved
because the request contains insufficient or invalid data/state.ExtendedResponse createExtendedResponse(String id, byte[] berValue, int offset, int length) throws NamingException
After the service provider has sent the extended operation request to the LDAP server, it will receive a response from the server. If the operation failed, the provider will throw a NamingException. If the operation succeeded, the provider will invoke this method using the data that it got back in the response. It is the job of this method to return a class that implements the ExtendedResponse interface that is appropriate for the extended operation request.
For example, a Start TLS extended request class would need to know how to process a Start TLS extended response. It does this by creating a class that implements ExtendedResponse.
id
- The possibly null object identifier of the response
control.berValue
- The possibly null ASN.1 BER encoded value of the
response control.
This is the raw BER bytes including the tag and length of
the response value. It does not include the response OID.offset
- The starting position in berValue of the bytes to use.length
- The number of bytes in berValue to use.NamingException
- if cannot create extended response
due to an error.ExtendedResponse
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2021, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.