1

ユーザー名とパスワードにNameCallbackとPasswordCallbackを使用しています。ユーザー名とパスワードの場合、ポップアップがブラウザに表示され、ユーザー名とパスワードを入力すると、JAASがリクエストを認証します。

Wiresharkで、401 Unauthorizedメッセージ(WWW-Authenticateヘッダー)が届き、ユーザー名/パスワードを入力すると、資格情報を使用してHTTPリクエストが生成され(Authorizationヘッダーを使用)サーバーに送信されるのを確認しました。

私の要件:ポップアップが表示されないようにします。ユーザー名/パスワードを持つ他のサーバー上のアプリケーションは、401を受信すると、ロジックに基づいて、Authorizationヘッダー/クレデンシャルを使用してHTTPリクエストを生成し、送り返します。

FLow: ユーザー->その他のサーバー-> My Tomcat5.5

ここ他のサーバーでは、ユーザー名/パスワードを手動で入力できる人は誰もいません。アプリケーションがデプロイされ、資格情報を使用してHTTPリクエストを生成し、それをtomcatに送り返します。

このように動作する他のコールバックをいただけますか。あなたの助けが必要です。アプローチに関連するフィードバックも提供してください。

質問の編集:

これが実際のケースです:

UserAがXYZサーバーに呼び出し(SIPプロトコル)を行いました。XYZサーバーにデプロイされたアプリケーションはHTTP RESTリクエストを作成し、Tomcatサーバーに送信します。Tomcatサーバーでは、ユーザーアカウントの詳細を取得するために1つのアプリケーションがデプロイされます。HTTPリクエストがtomcatに届くと、認証する必要があります。TomcatのJAASRealm実装を使用しています。

認証のために、tomcatが行っていることは、XYZサーバーでユーザー名/パスワードウィンドウをポップアップします。XYZサーバーでは、アプリケーションがHTTPリクエストを作成したため、ユーザー名/パスワードを手動で入力する人は誰もいません(これはユーザーAデバイス)。

このポップアップが表示されない方法を探しています。XYZサーバーにデプロイされたアプリケーションは次のようになります。

if(response equal 401)次に、クレデンシャルを使用してHTTPリクエストを作成します。

だからポップアップが出ない魂を探していたのですが、今ははっきりしていますか、提案してください。

4

1 に答える 1

2

アプリケーションは、401 および WWW-Authenticate ヘッダーを直接処理するのではなく、java.net.Authenticator を使用して HttpURLConnection に資格情報を提供する必要があります。

于 2012-06-12T05:05:49.070 に答える