Ruby open-uri: настройка базовой аутентификации прокси
Используйте отдельную опцию аутентификации прокси в open-uri, не смешивая её с учётными данными назначения или значениями среды по умолчанию.
Для промежуточной учётной записи используйте специальную базовую опцию прокси 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 включённой, затем проверьте статус/содержимое: работающий вход через прокси не доказывает, что назначение вернуло ожидаемый ресурс.