class WEBrick::HTTPAuth::DigestAuth

要約

HTTP の Digest 認証のためのクラスです。

[RFC2617] も参照してください。

例:

require 'webrick'
config = { :Realm => 'DigestAuth example realm' }

htdigest = WEBrick::HTTPAuth::Htdigest.new 'my_password_file'
htdigest.set_passwd config[:Realm], 'username', 'password'
htdigest.flush

config[:UserDB] = htdigest

digest_auth = WEBrick::HTTPAuth::DigestAuth.new config

サーブレットの initialize メソッドの中でこのクラスのインスタンスを作成しないようにしてください。デフォルトでは WEBrick はリクエストのたびにサーブレットのインスタンスを生成しますが、 WEBrick::HTTPAuth::DigestAuth のオブジェクトはリクエストをまたいで利用しなければならないためです。

目次

特異メソッド
インスタンスメソッド

継承しているメソッド

WEBrick::HTTPAuth::Authenticatorから継承しているメソッド

特異メソッド

make_passwd(realm, user, pass) -> String[permalink][rdoc]

与えられた情報を使用してハッシュ化したパスワードを生成します。

[PARAM] realm:
レルムを指定します。
[PARAM] user:
ユーザ名を指定します。
[PARAM] pass:
パスワードを指定します。
new(config, default = WEBrick::Config::DigestAuth) -> WEBrick::HTTPAuth::DigestAuth[permalink][rdoc]

自身を初期化します。

認証を実行するために、リクエスト間で状態を保存し、複数のリクエストに対して同一のインスタンスを使用してください。

[PARAM] config:
設定を保持しているハッシュを指定します。 :Realm と :UserDB は必ず指定しなければなりません。
[PARAM] default:
デフォルトは WEBrick::Config::DigestAuth です。

[SEE_ALSO] WEBrick::Config::DigestAuth

インスタンスメソッド

algorithm -> String[permalink][rdoc]

アルゴリズムを表す文字列を返します。

authenticate(request, response) -> true[permalink][rdoc]

クライアントから送られてきたユーザ名とパスワードを認証します。認証に失敗した場合は challenge を呼びます。

[PARAM] request:
WEBrick::HTTPRequest のインスタンスを指定します。
[PARAM] response:
WEBrick::HTTPResponse のインスタンスを指定します。
[EXCEPTION] WEBrick::HTTPStatus::Unauthorized:
認証に失敗した場合に発生します。
challenge(request, response, stale = false)[permalink][rdoc]

クライアントにパスワードを要求するためにレスポンスに WWW-Authenticate ヘッダを設定し、例外 WEBrick::HTTPStatus::Unauthorized を発生させます。

[PARAM] request:
WEBrick::HTTPRequest のインスタンスを指定します。
[PARAM] response:
WEBrick::HTTPResponse のインスタンスを指定します。
[EXCEPTION] WEBrick::HTTPStatus::Unauthorized:
このメソッドを呼ぶと必ず発生します。
qop -> String[permalink][rdoc]

Qop キーの値を返します。