ローカルアプリケーションは 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 パッケージにあります。

関連記事