要約
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][edit]-
pass をランダムなソルトで crypt した文字列を返します。
- [PARAM] realm:
- レルムを指定します。
- [PARAM] user:
- ユーザ名を指定します。
- [PARAM] pass:
- パスワードを指定します。
new(config, default = Config::BasicAuth) -> WEBrick::HTTPAuth::BasicAuth
[permalink][rdoc][edit]-
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][edit]-
クライアントから送られてきたユーザ名とパスワードを認証します。認証に失敗した場合は challenge を呼びます。
- [PARAM] request:
- WEBrick::HTTPRequest のインスタンスを指定します。
- [PARAM] response:
- WEBrick::HTTPResponse のインスタンスを指定します。
- [EXCEPTION] WEBrick::HTTPStatus::Unauthorized:
- 認証に失敗した場合に発生します。
challenge(request, response) -> ()
[permalink][rdoc][edit]-
クライアントにパスワードを要求するためにレスポンスに WWW-Authenticate ヘッダを設定し、例外 WEBrick::HTTPStatus::Unauthorized を投げます。
- [EXCEPTION] WEBrick::HTTPStatus::Unauthorized:
- このメソッドを呼ぶと必ず発生します。
logger -> object
[permalink][rdoc][edit]-
ロガーオブジェクトを返します。
realm -> String
[permalink][rdoc][edit]-
realm を文字列で返します。
userdb -> WEBrick::HTTPAuth::Htpasswd
[permalink][rdoc][edit]-
ユーザ名とパスワードを保存した WEBrick::HTTPAuth::Htpasswd オブジェクトを返します。