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

ChainedProxy parent = new ChainedProxyAdapter() {
    @Override
    public InetSocketAddress getChainedProxyAddress() {
        return new InetSocketAddress("proxy.office.example", 3128);
    }
};

ChainedProxyManager manager = (request, candidates) ->
    candidates.add(parent);

HttpProxyServer server = DefaultHttpProxyServer.bootstrap()
    .withAddress(new InetSocketAddress("127.0.0.1", 8080))
    .withChainProxyManager(manager)
    .start();

Этот фрагмент для Java 8 или более новой версии использует публичные интерфейсы цепочек LittleProxy. Приложение, использующее прокси, подключается к 127.0.0.1:8080; адаптер возвращает proxy.office.example:3128 как следующий прокси.

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

Типы цепочек находятся в org.littleshoot.proxy; DefaultHttpProxyServer находится в его пакете impl.

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