@NotMutable @ThreadSafety(level=COMPLETELY_THREADSAFE) public final class IntermediateClientRequestControl extends Control
   NOTE:  This class, and other classes within the
   com.unboundid.ldap.sdk.unboundidds package structure, are only
   supported for use against Ping Identity, UnboundID, and
   Nokia/Alcatel-Lucent 8661 server products.  These classes provide support
   for proprietary functionality or for external specifications that are not
   considered stable or mature enough to be guaranteed to work in an
   interoperable way with other types of LDAP servers.
 
 
 IntermediateClientRequest ::= SEQUENCE {
      downstreamRequest        [0] IntermediateClientRequest OPTIONAL,
      downstreamClientAddress  [1] OCTET STRING OPTIONAL,
      downstreamClientSecure   [2] BOOLEAN DEFAULT FALSE,
      clientIdentity           [3] authzId OPTIONAL,
      clientName               [4] OCTET STRING OPTIONAL,
      clientSessionID          [5] OCTET STRING OPTIONAL,
      clientRequestID          [6] OCTET STRING OPTIONAL,
      ... }
 
 
 SearchRequest searchRequest = new SearchRequest("dc=example,dc=com",
      SearchScope.SUB, Filter.createEqualityFilter("uid", "john.doe"));
 searchRequest.addControl(new IntermediateClientRequestControl(null, null,
      null, null, "my client", "session123", "request456"));
 SearchResult searchResult = connection.search(searchRequest);
 IntermediateClientResponseControl c =
      IntermediateClientResponseControl.get(searchResult);
 if (c != null)
 {
   // There was an intermediate client response control.
   IntermediateClientResponseValue responseValue = c.getResponseValue();
 }
 | Modifier and Type | Field and Description | 
|---|---|
| static java.lang.String | INTERMEDIATE_CLIENT_REQUEST_OIDThe OID (1.3.6.1.4.1.30221.2.5.2) for the intermediate client request
 control. | 
| Constructor and Description | 
|---|
| IntermediateClientRequestControl(boolean isCritical,
                                IntermediateClientRequestValue value)Creates a new intermediate client request control with the provided value. | 
| IntermediateClientRequestControl(Control control)Creates a new intermediate client request control which is decoded from the
 provided generic control. | 
| IntermediateClientRequestControl(IntermediateClientRequestValue value)Creates a new intermediate client request control with the provided value. | 
| IntermediateClientRequestControl(IntermediateClientRequestValue downstreamRequest,
                                java.lang.String downstreamClientAddress,
                                java.lang.Boolean downstreamClientSecure,
                                java.lang.String clientIdentity,
                                java.lang.String clientName,
                                java.lang.String clientSessionID,
                                java.lang.String clientRequestID)Creates a new intermediate client request control with the provided
 information. | 
| Modifier and Type | Method and Description | 
|---|---|
| static IntermediateClientRequestControl | decodeJSONControl(JSONObject controlObject,
                 boolean strict)Attempts to decode the provided object as a JSON representation of an
 intermediate client request control. | 
| java.lang.Boolean | downstreamClientSecure()Indicates whether the communication with the communication with the
 downstream client is secure (i.e., whether communication between the
 client application and the downstream client is safe from interpretation or
 undetectable alteration by a third party observer or interceptor). | 
| java.lang.String | getClientIdentity()Retrieves the requested client authorization identity, if available. | 
| java.lang.String | getClientName()Retrieves a string that identifies the client application that created this
 intermediate client request value. | 
| java.lang.String | getClientRequestID()Retrieves a string that may be used to identify the request in the client
 application. | 
| java.lang.String | getClientSessionID()Retrieves a string that may be used to identify the session in the client
 application. | 
| java.lang.String | getControlName()Retrieves the user-friendly name for this control, if available. | 
| java.lang.String | getDownstreamClientAddress()Retrieves the IP address or resolvable name of the downstream client
 system, if available. | 
| IntermediateClientRequestValue | getDownstreamRequest()Retrieves the wrapped request from a downstream client, if available. | 
| IntermediateClientRequestValue | getRequestValue()Retrieves the value for this intermediate client request. | 
| JSONObject | toJSONControl()Retrieves a representation of this intermediate client request control as a
 JSON object. | 
| void | toString(java.lang.StringBuilder buffer)Appends a string representation of this LDAP control to the provided
 buffer. | 
decode, decode, decodeControls, decodeJSONControl, deregisterDecodeableControl, encode, encodeControls, equals, getOID, getValue, hashCode, hasValue, isCritical, readFrom, registerDecodeableControl, registerDecodeableControl, toString, writeTo@NotNull public static final java.lang.String INTERMEDIATE_CLIENT_REQUEST_OID
public IntermediateClientRequestControl(@Nullable IntermediateClientRequestValue downstreamRequest, @Nullable java.lang.String downstreamClientAddress, @Nullable java.lang.Boolean downstreamClientSecure, @Nullable java.lang.String clientIdentity, @Nullable java.lang.String clientName, @Nullable java.lang.String clientSessionID, @Nullable java.lang.String clientRequestID)
downstreamRequest - A wrapped intermediate client request from
                                  a downstream client.  It may be
                                  null if there is no downstream
                                  request.downstreamClientAddress - The IP address or resolvable name of the
                                  downstream client system.  It may be
                                  null if there is no downstream
                                  client or its address is not available.downstreamClientSecure - Indicates whether communication with the
                                  downstream client is secure.  It may be
                                  null if there is no downstream
                                  client or it is not known whether the
                                  communication is secure.clientIdentity - The requested client authorization
                                  identity.  It may be null if there
                                  is no requested authorization identity.clientName - An identifier string that summarizes the
                                  client application that created this
                                  intermediate client request.  It may be
                                  null if that information is not
                                  available.clientSessionID - A string that may be used to identify the
                                  session in the client application.  It may
                                  be null if there is no available
                                  session identifier.clientRequestID - A string that may be used to identify the
                                  request in the client application.  It may
                                  be null if there is no available
                                  request identifier.public IntermediateClientRequestControl(@NotNull IntermediateClientRequestValue value)
value - The value to use for this intermediate client request
                control.  It must not be null.public IntermediateClientRequestControl(boolean isCritical, @NotNull IntermediateClientRequestValue value)
isCritical - Indicates whether the control should be marked
                     critical.value - The value to use for this intermediate client request
                     control.  It must not be null.public IntermediateClientRequestControl(@NotNull Control control) throws LDAPException
control - The generic control to be decoded as an intermediate
                  client request control.LDAPException - If the provided control cannot be decoded as an
                         intermediate client request control.@NotNull public IntermediateClientRequestValue getRequestValue()
@Nullable public IntermediateClientRequestValue getDownstreamRequest()
null if
          there is none.@Nullable public java.lang.String getClientIdentity()
null if
          there is none.@Nullable public java.lang.String getDownstreamClientAddress()
null if there is no downstream client or its address is
          not available.@Nullable public java.lang.Boolean downstreamClientSecure()
Boolean.TRUE if communication with the downstream client
          is secure, Boolean.FALSE if it is not secure, or
          null if there is no downstream client or it is not known
          whether the communication is secure.@Nullable public java.lang.String getClientName()
@Nullable public java.lang.String getClientSessionID()
null if there is none.@Nullable public java.lang.String getClientRequestID()
null if there is none.@NotNull public java.lang.String getControlName()
getControlName in class Control@NotNull public JSONObject toJSONControl()
oid -- A mandatory string field whose value is the object
     identifier for this control.  For the intermediate client request
     control, the OID is "1.3.6.1.4.1.30221.2.5.2".
   control-name -- An optional string field whose value is a
     human-readable name for this control.  This field is only intended for
     descriptive purposes, and when decoding a control, the oid
     field should be used to identify the type of control.
   criticality -- A mandatory Boolean field used to indicate
     whether this control is considered critical.
   value-base64 -- An optional string field whose value is a
     base64-encoded representation of the raw value for this intermediate
     client request control.  Exactly one of the value-base64 and
     value-json fields must be present.
   value-json -- An optional JSON object field whose value is a
     user-friendly representation of the value for this intermediate client
     request control.  Exactly one of the value-base64 and
     value-json fields must be present, and if the
     value-json field is used, then it will use the following
     fields:
     downstream-request -- An optional JSON object field whose
         content represents a downstream request value.  If present, the
         fields of this object are the same as the fields that may be
         included in the top-level value-json object (optionally
         including a nested downstream-request field, if
         appropriate).
       downstream-client-address -- An optional string field whose
         value is the address of the immediate client from which the request
         was received.
       downstream-client-secure -- An optional Boolean field that
         indicates whether communication with the immediate client is using
         a secure channel.
       client-identity -- An optional string field whose value is
         the authorization identity of a user as whom the operation should
         be authorized.
       client-name -- An optional string field whose value is the
         name of the client application that generated this control.
       client-session-id -- An optional string field whose value
         is an identifier that the client is using to reference the current
         communication session with a downstream client.
       client-request-id -- An optional string field whose value
         is an identifier that the client is using to reference this request
         from a downstream client.
       toJSONControl in class Control@NotNull public static IntermediateClientRequestControl decodeJSONControl(@NotNull JSONObject controlObject, boolean strict) throws LDAPException
controlObject - The JSON object to be decoded.  It must not be
                        null.strict - Indicates whether to use strict mode when decoding
                        the provided JSON object.  If this is true,
                        then this method will throw an exception if the
                        provided JSON object contains any unrecognized
                        fields.  If this is false, then unrecognized
                        fields will be ignored.LDAPException - If the provided JSON object cannot be parsed as a
                         valid intermediate client request control.