Jersey Rest クライアントの認証でプロキシ設定を構成しようとしています。最初は、認証を必要としないプロキシで正常に機能する次のコードを使用していました
ClientConfig config = new DefaultClientConfig();
Client client = Client.create(config);
ただし、プロキシで認証が必要な場合は機能しませんでした。次のコード スニペットを使用して、HttpComponents プロジェクトの HttpClient 4.2.1 で Jersey Apache http クライアントを使用してみました。
final ApacheHttpClientConfig config = new DefaultApacheHttpClientConfig();
Map<String, Object> configProp = config.getProperties();
final String proxyHost = System.getProperty("http.proxyHost");
final String proxyPort = System.getProperty("http.proxyPort");
if(proxyHost != null && proxyPort != null){
configProp.put(DefaultApacheHttpClientConfig.PROPERTY_PROXY_URI, "http://" + proxyHost + ":" + proxyPort);
final String proxyUser = System.getProperty("http.proxyUser");
final String proxyPassword = System.getProperty("http.proxyPassword");
if(proxyUser != null && proxyPassword != null){
ApacheHttpClientState state = config.getState();
state.setProxyCredentials(AuthScope.ANY_REALM, proxyHost, Integer.parseInt(proxyPort), proxyUser, proxyPassword);
}
}
config.getState() で「ClassNotFoundException」エラーをスローします。HttpClient の Credentials クラスのパスが変更され、jersey Apache Http Client が Credentials クラスを見つけられないようです。
それで、私の質問は、「ジャージーの最近のバージョンまたは一般的なジャージーでプロキシ認証を処理する別の方法はありますか?私のやり方は間違っていますか?」
ありがとう