Record Class WhoAmIExtendedRequest

java.lang.Object
java.lang.Record
org.forgerock.opendj.ldap.messages.WhoAmIExtendedRequest
Record Components:
controls - the List containing the controls.
All Implemented Interfaces:
ExtendedRequest<WhoAmIExtendedResult>, ProtocolOp, Request

public record WhoAmIExtendedRequest(List<Control> controls) extends Record implements ExtendedRequest<WhoAmIExtendedResult>
The who am I extended request as defined in RFC 4532. This operation allows clients to obtain the primary authorization identity, in its primary form, that the server has associated with the user or application entity.

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.
See Also:
  • Field Details

  • Constructor Details

    • WhoAmIExtendedRequest

      public WhoAmIExtendedRequest(List<Control> controls)
      Creates a new WhoAmIExtendedRequest.
  • Method Details

    • getOid

      public String getOid()
      Description copied from interface: ExtendedRequest
      Returns the numeric OID associated with this extended request.
      Specified by:
      getOid in interface ExtendedRequest<WhoAmIExtendedResult>
      Returns:
      The numeric OID associated with this extended request.
    • getResultDecoder

      public ExtendedResultDecoder<WhoAmIExtendedResult> getResultDecoder()
      Description copied from interface: ExtendedRequest
      Returns a decoder which can be used to decoded responses to this extended request.
      Specified by:
      getResultDecoder in interface ExtendedRequest<WhoAmIExtendedResult>
      Returns:
      A decoder which can be used to decoded responses to this extended request.
    • getValue

      public ByteString getValue()
      Description copied from interface: ExtendedRequest
      Returns the value, if any, associated with this extended request. Its format is defined by the specification of this extended request.
      Specified by:
      getValue in interface ExtendedRequest<WhoAmIExtendedResult>
      Returns:
      The value associated with this extended request, or null if there is no value.
    • hasValue

      public boolean hasValue()
      Description copied from interface: ExtendedRequest
      Returns true if this extended request has a value. In some circumstances it may be useful to determine if an extended request has a value, without actually calculating the value and incurring any performance costs.
      Specified by:
      hasValue in interface ExtendedRequest<WhoAmIExtendedResult>
      Returns:
      true if this extended request has a value, or false if there is no value.
    • toString

      public final String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • controls

      public List<Control> controls()
      Returns the value of the controls record component.
      Specified by:
      controls in interface ProtocolOp
      Returns:
      the value of the controls record component