class WEBrick::HTTPAuth::BasicAuth

要約

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

require 'webrick'
realm = "WEBrick's realm"
srv = WEBrick::HTTPServer.new({ :BindAddress => '127.0.0.1', :Port => 10080})

htpd = WEBrick::HTTPAuth::Htpasswd.new('dot.htpasswd')
htpd.set_passwd(nil, 'username', 'supersecretpass')

authenticator = WEBrick::HTTPAuth::BasicAuth.new(:UserDB => htpd, :Realm => realm)
srv.mount_proc('/basic_auth') {|req, res|
  authenticator.authenticate(req, res)
  res.body = "hoge"
}
srv.start # http://127.0.0.1:10080/basic_auth

目次

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

継承しているメソッド

特異メソッド

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

pass をランダムなソルトで crypt した文字列を返します。

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

BasicAuth オブジェクトを生成します。config は設定を保存したハッシュです。

config で有効なハッシュキーは以下の通りです。

:Realm            =>
:UserDB           =>
:Logger           =>
:AutoReloadUserDB =>

realm を表す文字列 :Realm には与えます。:UserDB には WEBrick::HTTPAuth::Htpasswd オブジェクトを与えます。:Logger にはロガーオブジェクトを与えます。また、:AutoReloadUserDB には WEBrick::HTTPAuth::Htpasswd#get_passwd の reload_db に渡す引数を与えます。

[PARAM] config:
設定を保持しているハッシュを指定します。
[PARAM] default:
デフォルトは WEBrick::Config::BasicAuth です。

インスタンスメソッド

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

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

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

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

[EXCEPTION] WEBrick::HTTPStatus::Unauthorized:
このメソッドを呼ぶと必ず発生します。
logger -> object[permalink][rdoc]

ロガーオブジェクトを返します。

realm -> String[permalink][rdoc]

realm を文字列で返します。

userdb -> WEBrick::HTTPAuth::Htpasswd[permalink][rdoc]

ユーザ名とパスワードを保存した WEBrick::HTTPAuth::Htpasswd オブジェクトを返します。