5.1.7 PythonAuthenHandler

文法: Python*Handler Syntax
コンテキスト: サーバ設定、バーチャルホスト、ディレクトリ、 htaccess
オーバライド: not None
モジュール: mod_python.c

このルーチンはリクエストと同時に送られてきた認証情報を (ユーザがデータベースの中にあるかどうか、また [暗号化された] パスワードがデータベース上のパスワードと一致しているかを調べるなどして) チェックするときに呼ばれます。

ユーザ名を得るには、req.userを使います。また、 ユーザが入力したパスワードを得るにはreq.get_basic_auth_pw()関数を使います。

apache.OKを返すことで、認証の成功を意味します。 apache.HTTP_UNAUTHORIZEDを返すと大抵のブラウザでは 認証(パスワード)ダイアログが再度表示されます。 apache.HTTP_FORBIDDENを返すとエラーを表示し、 認証(パスワード)ダイアログは表示されません。 認証は成功しているものの、ユーザが特定のURLにアクセスを許されていない場合には HTTP_FORBIDDENを使ってください。

認証ハンドラの例は以下のようになります:

def authenhandler(req):

    pw = req.get_basic_auth_pw()
    user = req.user
    if user == "spam" and pw == "eggs":
        return apache.OK
    else:
        return apache.HTTP_UNAUTHORIZED

注意: req.get_basic_auth_pw()req.userの値を使う前に 呼び出さねばなりません。Apacheはreq.get_basic_auth_pw()を呼び出すまで 認証情報のデコードを試みません。