@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_OID
The 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.