Webアプリケーションは、JerseyクライアントAPIを使用して内部的にいくつかのWebサービスを呼び出します。安全なサービスはほとんどなく、認証に証明書を使用しています。ホスト名の確認を無効にする
いくつかの理由で、いくつかのサービスでホスト名検証を無効にする必要があるためです。
私はいくつかの例を検索し、以下のリンクを見つけました。検証を無効にした後、期待どおりにサービスが開始されました。第3のリンクを経由しながら
は私がHttpsURLConnection.setDefaultHostnameVerifierへの呼び出し(allHostsValid)を気づきました。
上記の呼び出しのため、後続のすべてのWebサービス呼び出しでホスト名検証が無効になると想定しています。
私の前提が正しい場合、特定のサービスでのみ検証を無効にするにはどうすればよいですか?
HostnameVerifier allHostsValid = new HostnameVerifier() {
public boolean verify(String hostname, SSLSession session) {
if(hostname.equals("xyz")) {
return true;
} else {
// How do I implement this section?
// if I return false will the server perform the verification? If not how do I implement this?
}
}
};
私たちはJerseyクライアントを使用しています。だから私はジャージーに現在の接続のためだけにそれをするように指示する方法を見つけなければならないと思う。ありがとうございます –
申し訳ありませんが、Jerseyクライアントを使用していて、 'HttpsURLConnection.setDefaultHostnameVerifier'を呼び出していた部分にまっすぐジャンプしました。 Jerseyや他のJAX-RSクライアントに関するいくつかの情報で答えを更新しましたが、これは自分で実装したものではありません。 – Azquelt
問題ありません。私は識別しようとします。ジャージーが何もオプションを提供していない場合、私はHttpURLConnectionクラスを使用します –