Interface PasswordModifyExtendedRequest

  • All Superinterfaces:
    ExtendedRequest<PasswordModifyExtendedResult>, ProtocolOp, Request

    public interface PasswordModifyExtendedRequest
    extends ExtendedRequest<PasswordModifyExtendedResult>
    The password modify extended request as defined in RFC 3062. This operation allows directory clients to update user passwords. The user may or may not be associated with a directory entry. The user may or may not be represented as an LDAP DN. The user's password may or may not be stored in the directory. In addition, it includes support for requiring the user's current password as well as for generating a new password if none was provided.
     
     String userIdentity = ...; // For example, "u:<uid>" or "dn:<DN>"
     char[] oldPassword = ...;
     char[] newPassword = ...;
     Connection connection = ...;
    
     PasswordModifyExtendedRequest request =
             Requests.newPasswordModifyExtendedRequest()
                 .setUserIdentity(userIdentity)
                 .setOldPassword(oldPassword)
                 .setNewPassword(newPassword);
    
     PasswordModifyExtendedResult result = connection.extendedRequest(request);
     if (result.isSuccess()) {
         // Changed password
     } else {
         // Use result to diagnose error.
     }
     
     
    See Also:
    PasswordModifyExtendedResult, RFC 3062 - LDAP Password Modify Extended Operation
    • Method Detail

      • getControl

        <C extends Control> C getControl​(ControlDecoder<C> decoder,
                                         DecodeOptions options)
                                  throws DecodeException
        Description copied from interface: ProtocolOp
        Decodes and returns the first control in this protocol-op having an OID corresponding to the provided control decoder.
        Specified by:
        getControl in interface ExtendedRequest<PasswordModifyExtendedResult>
        Specified by:
        getControl in interface ProtocolOp
        Type Parameters:
        C - The type of control to be decoded and returned.
        Parameters:
        decoder - The control decoder.
        options - The set of decode options which should be used when decoding the control.
        Returns:
        The decoded control, or null if the control is not included with this protocol-op.
        Throws:
        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).
      • getNewPassword

        byte[] getNewPassword()
        Returns the desired password for the user, or null if a new password should be generated.
        Returns:
        The desired password for the user, or null if a new password should be generated.
      • getOldPassword

        byte[] getOldPassword()
        Returns the current password for the user, if known.
        Returns:
        The current password for the user, or null if the password is not known.
      • getUserIdentity

        ByteString getUserIdentity()
        Returns the identity of the user whose password is to be modified, or null if the request should be applied to the user currently associated with the session. The returned identity may or may not be a distinguished name.
        Returns:
        The identity of the user whose password is to be modified, or null if the request should be applied to the user currently associated with the session.
      • getUserIdentityAsString

        String getUserIdentityAsString()
        Returns the identity of the user whose password is to be modified decoded as a UTF-8 string, or null if the request should be applied to the user currently associated with the session. The returned identity may or may not be a distinguished name.
        Returns:
        The identity of the user whose password is to be modified decoded as a UTF-8 string, or null if the request should be applied to the user currently associated with the session.
      • getValue

        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<PasswordModifyExtendedResult>
        Returns:
        The value associated with this extended request, or null if there is no value.
      • hasValue

        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 a extended request has a value, without actually calculating the value and incurring any performance costs.
        Specified by:
        hasValue in interface ExtendedRequest<PasswordModifyExtendedResult>
        Returns:
        true if this extended request has a value, or false if there is no value.
      • setNewPassword

        PasswordModifyExtendedRequest setNewPassword​(byte[] newPassword)
        Sets the desired password for the user.
        Parameters:
        newPassword - The desired password for the user, or null if a new password should be generated.
        Returns:
        This password modify request.
        Throws:
        UnsupportedOperationException - If this password modify extended request does not permit the new password to be set.
      • setNewPassword

        PasswordModifyExtendedRequest setNewPassword​(char[] newPassword)
        Sets the desired password for the user. The password will be converted to a UTF-8 octet string.
        Parameters:
        newPassword - The desired password for the user, or null if a new password should be generated.
        Returns:
        This password modify request.
        Throws:
        UnsupportedOperationException - If this password modify extended request does not permit the new password to be set.
      • setOldPassword

        PasswordModifyExtendedRequest setOldPassword​(byte[] oldPassword)
        Sets the current password for the user.
        Parameters:
        oldPassword - The current password for the user, or null if the password is not known.
        Returns:
        This password modify request.
        Throws:
        UnsupportedOperationException - If this password modify extended request does not permit the old password to be set.
      • setOldPassword

        PasswordModifyExtendedRequest setOldPassword​(char[] oldPassword)
        Sets the current password for the user. The password will be converted to a UTF-8 octet string.
        Parameters:
        oldPassword - The current password for the user, or null if the password is not known.
        Returns:
        This password modify request.
        Throws:
        UnsupportedOperationException - If this password modify extended request does not permit the old password to be set.
      • setUserIdentity

        PasswordModifyExtendedRequest setUserIdentity​(Object userIdentity)
        Sets the identity of the user whose password is to be modified. The identity may or may not be a distinguished name.

        If userIdentity is not an instance of ByteString then it will be converted using the ByteString.valueOfObject(Object) method.

        Parameters:
        userIdentity - The identity of the user whose password is to be modified, or null if the request should be applied to the user currently associated with the session.
        Returns:
        This password modify request.
        Throws:
        UnsupportedOperationException - If this password modify extended request does not permit the user identity to be set.