Для промежуточной учётной записи используйте специальную базовую опцию прокси open-uri:

require 'open-uri'

body = URI.open(
  'https://example.com/',
  proxy_http_basic_authentication: [
    'http://203.0.113.10:8080',
    ENV.fetch('PROXY_USER'),
    ENV.fetch('PROXY_PASSWORD')
  ],
  open_timeout: 5,
  read_timeout: 10
) { |response| response.read }

Замените конечную точку из документации и получите значения учётной записи из предусмотренного источника секретов. Не помещайте пароль в URL, который позже может вывести исключение или отчёт поддержки.

Опция OpenReadНазначение
proxy_http_basic_authenticationАдрес прокси и его базовые имя пользователя/пароль.
proxyВыбор прокси без этой совмещённой аутентифицированной опции; если указать обе, возникает ошибка аргумента.
http_basic_authenticationУчётная запись сервера назначения.
proxy: nilСделайте это чтение прямым, несмотря на значения среды по умолчанию.

Без явной опции прокси open-uri может использовать переменные среды прокси, специфичные для схемы. Аутентифицированная опция уже содержит свою конечную точку; ей не нужно второе значение proxy.

Этот интерфейс обрабатывает базовую аутентификацию прокси. Сервису, требующему другого механизма, нужен совместимый клиент или одобренная интеграция. Оставьте проверку HTTPS включённой, затем проверьте статус/содержимое: работающий вход через прокси не доказывает, что назначение вернуло ожидаемый ресурс.

Похожие статьи