クラシックな Groovy HTTPBuilder のための認証付きプロキシ設定
クラシック HTTPBuilder のルートと Apache 認証情報プロバイダーを、プロキシのホストとポートに合わせて構成します。
クラシックな groovyx.net.http.HTTPBuilder を使うアプリケーションでは、ビルダーにルートを、その Apache HTTP クライアントの認証情報プロバイダーにプロキシのアカウントを設定します。
import groovyx.net.http.HTTPBuilder
import org.apache.http.auth.AuthScope
import org.apache.http.auth.UsernamePasswordCredentials
def http = new HTTPBuilder('https://api.example.net')
http.setProxy('proxy.example.net', 8080, 'http')
http.client.credentialsProvider.setCredentials(
new AuthScope('proxy.example.net', 8080),
new UsernamePasswordCredentials(proxyUser, proxyPassword)
)
認証情報の変数はアプリケーション側から渡します。AuthScope は直前で構成したプロキシのホストとポートに一致させます。このビルダーを経由する以降のリクエストは、その構成済みクライアントを使います。
クラシック HTTPBuilder の既定の実装は Apache DefaultHttpClient を生成し、公開メソッド setProxy がそのクライアントの既定プロキシルートを設定します。アプリケーション自体が Grails や Tomcat の中で動作していても、関係する構成対象はこれです。
この例はそのクラシック API を対象にしています。HTTPBuilder-NG は構成モデルが異なるため、クラシックなビルダーの基盤クライアントを差し替えるアプリケーションは、差し替え側が対応するインターフェースを使う必要があります。アプリケーション構成から読み込むときは、ホスト名、整数のポート、プロキシのスキームを別々の値として保持してください。