public interface WhoAmIExtendedRequest extends ExtendedRequest<WhoAmIExtendedResult>
The following example demonstrates use of the Who Am I? request and response.
Connection connection = ...; String name = ...; char[] password = ...; Result result = connection.bind(name, password); if (result.isSuccess()) { WhoAmIExtendedRequest request = Requests.newWhoAmIExtendedRequest(); WhoAmIExtendedResult extResult = connection.extendedRequest(request); if (extResult.isSuccess()) { // Authz ID: " + extResult.getAuthorizationID()); } }This operation may preferable to the Authorization Identity Controls mechanism defined in RFC 3829, which uses Bind request and response controls to request and return the authorization identity. Bind controls are not protected by security layers established by the Bind operation that includes them. While it is possible to establish security layers using StartTLS prior to the Bind operation, it is often desirable to use security layers established by the Bind operation. An extended operation sent after a Bind operation is protected by the security layers established by the Bind operation.
Request.RequestType
Modifier and Type | Field and Description |
---|---|
static ExtendedRequestDecoder<WhoAmIExtendedRequest,WhoAmIExtendedResult> |
DECODER
A decoder which can be used to decode who am I extended operation
requests.
|
static String |
OID
The OID for the who am I extended operation request.
|
Modifier and Type | Method and Description |
---|---|
WhoAmIExtendedRequest |
addControl(Control control)
Adds the provided control to this protocol-op.
|
WhoAmIExtendedRequest |
addControls(Iterable<? extends Control> controls)
Adds the provided controls to this protocol-op.
|
<C extends Control> |
getControl(ControlDecoder<C> decoder,
DecodeOptions options)
Decodes and returns the first control in this protocol-op having an OID
corresponding to the provided control decoder.
|
List<Control> |
getControls()
Returns a
List containing the controls included with this
protocol-op. |
String |
getOid()
Returns the numeric OID associated with this extended request.
|
ExtendedResultDecoder<WhoAmIExtendedResult> |
getResultDecoder()
Returns a decoder which can be used to decoded responses to this extended
request.
|
ByteString |
getValue()
Returns the value, if any, associated with this extended request.
|
boolean |
hasValue()
Returns
true if this extended request has a value. |
containsControl, getControl
static final ExtendedRequestDecoder<WhoAmIExtendedRequest,WhoAmIExtendedResult> DECODER
static final String OID
WhoAmIExtendedRequest addControl(Control control)
ProtocolOp
addControl
in interface ExtendedRequest<WhoAmIExtendedResult>
addControl
in interface ProtocolOp
addControl
in interface Request
control
- The control to be added to this protocol-op.WhoAmIExtendedRequest addControls(Iterable<? extends Control> controls)
ProtocolOp
addControls
in interface ExtendedRequest<WhoAmIExtendedResult>
addControls
in interface ProtocolOp
addControls
in interface Request
controls
- The controls to be added to this protocol-op.<C extends Control> C getControl(ControlDecoder<C> decoder, DecodeOptions options) throws DecodeException
ProtocolOp
getControl
in interface ExtendedRequest<WhoAmIExtendedResult>
getControl
in interface ProtocolOp
C
- The type of control to be decoded and returned.decoder
- The control decoder.options
- The set of decode options which should be used when decoding
the control.null
if the control is not
included with this protocol-op.DecodeException
- If the control could not be decoded because it was malformed in some way
(e.g. the control value was missing, or its content could not be decoded).List<Control> getControls()
ProtocolOp
List
containing the controls included with this
protocol-op. The returned List
may be modified if permitted by this
protocol-op.getControls
in interface ExtendedRequest<WhoAmIExtendedResult>
getControls
in interface ProtocolOp
List
containing the controls.String getOid()
ExtendedRequest
getOid
in interface ExtendedRequest<WhoAmIExtendedResult>
ExtendedResultDecoder<WhoAmIExtendedResult> getResultDecoder()
ExtendedRequest
getResultDecoder
in interface ExtendedRequest<WhoAmIExtendedResult>
ByteString getValue()
ExtendedRequest
getValue
in interface ExtendedRequest<WhoAmIExtendedResult>
null
if there is no value.boolean hasValue()
ExtendedRequest
true
if this extended request has a value. In some
circumstances it may be useful to determine if a extended request has a
value, without actually calculating the value and incurring any
performance costs.hasValue
in interface ExtendedRequest<WhoAmIExtendedResult>
true
if this extended request has a value, or
false
if there is no value.Copyright 2010-2022 ForgeRock AS.