Локальный прокси, слушающий рядом с приложением, не воспроизводит сеть, которая требует доступа через прокси. Приложение может проигнорировать настроенный прокси, подключиться напрямую и всё равно сообщить об успехе.

Отделите сеть приложения от внешнего пути прокси. Одна схема на контейнерах помещает приложение только во внутреннюю сеть, а прокси получает вторую выходную сеть. В существующем описании Compose подключения к сетям могут выглядеть так:

services:
  app:
    networks: [clients]
  proxy:
    networks: [clients, egress]
networks:
  clients:
    internal: true
  egress: {}

Это фрагмент сети для уже определённых сервисов. Настройте одобренный пересылающий прокси и фактический клиент приложения по отдельности. Docker описывает внутренние сети как изолированные снаружи; в этой схеме дополнительная внешняя сеть есть только у прокси.

Добавьте отрицательный случай без использования прокси: внешний запрос приложения должен завершиться ошибкой. Для HTTP-прокси с аутентификацией отклонённая учётная запись должна давать свою ошибку аутентификации, а принятая — достигать цели с соответствующим наблюдением со стороны прокси.

Проверяйте разрешённые и запрещённые случаи прокси по отдельности. Держите приложение вне других внешних сетей и не добавляйте режим сети хоста, обходящий прокси. Успешный запрос становится полезным доказательством только тогда, когда тест предоставляет именно задуманный маршрут.

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