code: public static boolean executePasswordModifyOperation(final String currentDn,
                                                           final ConnectionFactory connectionFactory,
                                                           final String oldPassword,
                                                           final String newPassword,
                                                           final AbstractLdapProperties.LdapType type) {
          try (val modifyConnection = createConnection(connectionFactory)) {
              if (!modifyConnection.getConnectionConfig().getUseSSL()
                  && !modifyConnection.getConnectionConfig().getUseStartTLS()) {
                  LOGGER.warn("Executing password modification op under a non-secure LDAP connection; "
                      + "To modify password attributes, the connection to the LDAP server SHOULD be secured and/or encrypted.");
              }
              if (type == AbstractLdapProperties.LdapType.AD) {
                  LOGGER.debug("Executing password modification op for active directory based on "
                      + "[https://support.microsoft.com/en-us/kb/269190]");
                  val operation = new ModifyOperation(modifyConnection);
                  val response = operation.execute(new ModifyRequest(currentDn, new AttributeModification(AttributeModificationType.REPLACE, new UnicodePwdAttribute(newPassword))));
                  LOGGER.debug("Result code [{}], message: [{}]", response.getResult(), response.getMessage());
                  return response.getResultCode() == ResultCode.SUCCESS;
              }
  
              LOGGER.debug("Executing password modification op for generic LDAP");
              val operation = new PasswordModifyOperation(modifyConnection);
              val response = operation.execute(new PasswordModifyRequest(currentDn,
                  StringUtils.isNotBlank(oldPassword) ? new Credential(oldPassword) : null,
                  new Credential(newPassword)));
              LOGGER.debug("Result code [{}], message: [{}]", response.getResult(), response.getMessage());
              return response.getResultCode() == ResultCode.SUCCESS;
          } catch (final LdapException e) {
              LOGGER.error(e.getMessage(), e);
          }
          return false;
      }
docs: Execute a password modify operation.
  
  @param currentDn         the current dn
  @param connectionFactory the connection factory
  @param oldPassword       the old password
  @param newPassword       the new password
  @param type              the type
  @return true /false