2016-12-17 3 views
1

これにはたくさんの回答がありますが(onetwothree)、それらはすべて廃止された方法を使用しています。 Java 1.7以降では、Basic、Digest、NTLM、および/またはWindows Identityに資格情報を提供する必要がある場合、http経由でリソースを要求する最も良い方法は何ですか?Basic、Digest、およびNTLM/WindowsIdentityを使用してhttp応答を取得するにはどうすればよいですか?

これにはApacheライブラリを使用すると問題ありません。

これは繰り返しの質問ですが、既存の回答はすべて廃止された呼び出しを使用しているようです。

更新:これは、ユーザが私たちにURLを渡して、それが異なる認証システムのいずれかであると言うライブラリにあります。このライブラリは、ユーザーによって異なるアプリケーションに追加されます。したがって、どのアプリケーションでも使用できる任意のサービスである可能性があります。それはウェブでも、RESTでもかまいません。それは、Apache、WebLogic、WebSphere、または他の何かの下にある可能性があります。

+0

これは情報が少なすぎます。 HTTPサービス(ウェブ、休憩)にアクセスしますか?どのApacheフレームワークを使用する予定ですか? (http-client、axis、cxf、...)どのバージョン? – gusto2

+0

@ GabrielVince私はそれを更新しましたが、私たちは多くの人に提供するランタイムライブラリとして、基本的な答えは「何でもありうる」としました。 –

答えて

0

あなたは何を達成しようとしていますか?すべての認証方法に1つの魔法の銀色の弾丸はありません。最良の選択肢は、十分に確立されたHTTPクライアントフレームワーク(http-clientなど)を豊富なauthentication optionsで使用することです。他にもいくつかありますが、私はApacheのHttpCompnentsを最も信頼性の高い(しかもまだ無料です)と考えています。

Apache HTTPコモンズクライアントは、クライアントのみの認証(基本、ダイジェスト、NTLM(私のお気に入りではない))ですぐに動作するはずです。ほとんどの場合、動作するHTTPコンテキストに対して「CredentialProvider」(パスワード・コールバック・クラス)を実装します。 Windows ID(Kerberos/SPNEGO認証を意味すると仮定します)では、さらに構成(キータブファイル、jaas構成など)が必要です。

通常、皆さんがサポートしているいくつかの一般的な標準に固執し、他の人にそれを使用しようとする必要があります(TLS/SSLによる基本認証は問題ありません)。

異なる環境(WebSphere、WebLogic、その他のアプリケーション)を使用すると、他のアプリケーションで異なるバージョンのHTTPクライアントライブラリまたはバージョンを使用することがあり、すべての方法で設定が機能しなくなる可能性があります。したがって、独自のhttpクライアント(基本認証とダイジェスト認証のための単純な実装)を計画しない限り、特定のバージョンの特定のフレームワークを使用するようにクライアントを強制する必要があります。

+0

ありがとう –

関連する問題