@NotMutable @ThreadSafety(level=COMPLETELY_THREADSAFE) public final class OperationPurposeRequestControl 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.
true
or false
.
It must have a value with the following encoding:
OperationPurposeRequest ::= SEQUENCE { applicationName [0] OCTET STRING OPTIONAL, applicationVersion [1] OCTET STRING OPTIONAL, codeLocation [2] OCTET STRING OPTIONAL, requestPurpose [3] OCTET STRING OPTIONAL ... }At least one of the elements in the value sequence must be present.
SearchRequest searchRequest = new SearchRequest("dc=example,dc=com", SearchScope.SUB, Filter.createEqualityFilter("uid", uidValue), "1.1"); searchRequest.addControl(new OperationPurposeRequestControl(appName, appVersion, 0, "Retrieve the entry for a user with a given uid")); Entry userEntry = connection.searchForEntry(searchRequest); SimpleBindRequest bindRequest = new SimpleBindRequest(userEntry.getDN(), password, new OperationPurposeRequestControl(appName, appVersion, 0, "Bind as a user to verify the provided credentials.")); BindResult bindResult = connection.bind(bindRequest);
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
OPERATION_PURPOSE_REQUEST_OID
The OID (1.3.6.1.4.1.30221.2.5.19) for the operation purpose request
control.
|
Constructor and Description |
---|
OperationPurposeRequestControl(boolean isCritical,
java.lang.String applicationName,
java.lang.String applicationVersion,
java.lang.String codeLocation,
java.lang.String requestPurpose)
Creates a new operation purpose request control with the provided
information.
|
OperationPurposeRequestControl(Control control)
Creates a new operation purpose request control which is decoded from the
provided generic control.
|
OperationPurposeRequestControl(java.lang.String applicationName,
java.lang.String applicationVersion,
int codeLocationFrames,
java.lang.String requestPurpose)
Creates a new operation purpose request control with the provided
information.
|
Modifier and Type | Method and Description |
---|---|
static OperationPurposeRequestControl |
decodeJSONControl(JSONObject controlObject,
boolean strict)
Attempts to decode the provided object as a JSON representation of an
operation purpose request control.
|
java.lang.String |
getApplicationName()
Retrieves the name of the application that generated the associated
request, if available.
|
java.lang.String |
getApplicationVersion()
Retrieves information about the version of the application that generated
the associated request, if available.
|
java.lang.String |
getCodeLocation()
Retrieves information about the location in the application code in which
the associated request was created, if available.
|
java.lang.String |
getControlName()
Retrieves the user-friendly name for this control, if available.
|
java.lang.String |
getRequestPurpose()
Retrieves a message with information about the purpose of the associated
request, if available.
|
JSONObject |
toJSONControl()
Retrieves a representation of this operation purpose 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 OPERATION_PURPOSE_REQUEST_OID
public OperationPurposeRequestControl(@Nullable java.lang.String applicationName, @Nullable java.lang.String applicationVersion, int codeLocationFrames, @Nullable java.lang.String requestPurpose)
false
, then at least one of the
applicationName, applicationVersion, and requestPurpose arguments must
be non-null
.applicationName
- The name of the application generating the
associated request. It may be null
if
this should not be included in the control.applicationVersion
- Information about the version of the
application generating the associated request.
It may be null
if this should not be
included in the control.codeLocationFrames
- Indicates that the code location should be
automatically generated with a condensed stack
trace for the current thread, using the
specified number of stack frames. A value that
is less than or equal to zero indicates an
unlimited number of stack frames should be
included.requestPurpose
- A string identifying the purpose of the
associated request. It may be null
if
this should not be included in the control.public OperationPurposeRequestControl(boolean isCritical, @Nullable java.lang.String applicationName, @Nullable java.lang.String applicationVersion, @Nullable java.lang.String codeLocation, @Nullable java.lang.String requestPurpose)
null
.isCritical
- Indicates whether the control should be
considered critical.applicationName
- The name of the application generating the
associated request. It may be null
if
this should not be included in the control.applicationVersion
- Information about the version of the
application generating the associated request.
It may be null
if this should not be
included in the control.codeLocation
- Information about the location in the
application code in which the associated
request is generated (e.g., the class and/or
method name, or any other useful identifier).
It may be null
if this should not be
included in the control.requestPurpose
- A string identifying the purpose of the
associated request. It may be null
if
this should not be included in the control.public OperationPurposeRequestControl(@NotNull Control control) throws LDAPException
control
- The generic control to be decoded as an operation purpose
request control.LDAPException
- If the provided control cannot be decoded as an
operation purpose request control.@Nullable public java.lang.String getApplicationName()
null
if that is not available.@Nullable public java.lang.String getApplicationVersion()
null
if that is not available.@Nullable public java.lang.String getCodeLocation()
null
if that is not
available.@Nullable public java.lang.String getRequestPurpose()
null
if that is not available.@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 operation purpose request
control, the OID is "1.3.6.1.4.1.30221.2.5.19".
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 operation
purpose 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 operation purpose
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:
application-name
-- An optional string field whose value is
the name of the application that generated the request.
application-version
-- An optional string field whose value
is the version for the application that generated the request.
code-location
-- An optional string field whose value may
help identify the location in the application codebase where the
request is generated.
request-purpose
-- An optional string field whose value is
a message that describes the purpose for the request.
toJSONControl
in class Control
@NotNull public static OperationPurposeRequestControl 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 operation purpose request control.