2

webclientのHttpUnit APIは、「指定されたレルムに対してチャレンジされた場合にのみ認証ヘッダーを送信する」と述べています。この場合のチャレンジングとはどういう意味ですか? HttpUnit はチャレンジをどのように認識しますか?

4

2 に答える 2

3

これは、HTTP 認証の仕組みを示しています。

保護された URL に (資格情報が含まれていない状態で初めて) 保護された URL にアクセスすると、サーバーは、 のような状態コード401 UnauthorizedWWW-Authenticateヘッダーが設定された応答を返しますBasic realm="My Realm"。これは、指定された URL に基本認証が必要であり、レルムの名前が「My Realm」であることを示しています。これが課題です。ユーザー エージェントは、アクセスしようとした URL には認証が必要であり、ユーザー資格情報を送り返す必要があることをサーバーから通知されています。ユーザー エージェントは通常、ユーザーに資格情報の入力を求めてから、要求を再試行します。今回は、2 番目の部分が Base64 でエンコードされたユーザー名とパスワードのペアでAuthorizationあるようなものに設定されたヘッダーを使用します。Basic rXflcjMwYXxz

リンクした HttpUnit メソッドの場合、レルム、ユーザー名、およびパスワードが必要であることがわかります。URL にアクセスしたときに、サーバーから 401 (チャレンジ) が返された場合、渡されたレルムと応答のレルムが比較されると思います。一致する場合は、指定されたユーザー名とパスワードで認証を試みます。

参考文献:

于 2011-05-16T23:40:33.070 に答える
2

サーバーが 401 エラーで応答すると、HttpUnit は AuthorizationRequiredException をスローします。例外の getParameter("realm") を使用してレルムを取得し、このレルム名でリクエストを再度送信できます。

于 2011-05-18T04:04:11.787 に答える