Basic認証設定を管理画面から行える Movable Type プラグインを作った。

| コメント(0) | トラックバック(0)

プラグイン設定画面

管理画面から設定できたらいいよねぇってことで作ってみた。プラグイン設定から、ユーザー名とパスワードの設定ができます。

.htaccessで設定とか、.htpasswdをターミナルで生成とかやっぱり敷居高いもんな、とか思ったんだけども、Perl CGIでは $ENV{ 'HTTP_AUTHORIZATION' } はどうもデフォルトでは取得できないみたいで。

.htaccess に追加

IIS や nginx では未確認。こんな指定するくらいなら素直にBasic認証の設定を入れるよって? そりゃそうだ。まぁ何かの参考に、備忘録として。

RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

関係(何とだ)しそうなところだけコードを貼っておく。

if ( my $auth = $app->get_header( 'AUTHORIZATION' ) ) {
    my @auths = split( /\s/, $auth );
    $auth = $auths[ 1 ];
    $auth = MIME::Base64::decode_base64( $auth );
    @auths = split( /:/, $auth );
    if ( scalar( @auths ) == 2 ) {
        my $username = $auths[ 0 ];
        my $password = $auths[ 1 ];
        if ( ( $username eq $auth_username ) &&
            ( $password eq $auth_password ) ) {
            $authrized = 1;
        }
    }
}
if (! $authrized ) {
    $app->logout();
    $app->delete_param( 'username' );
    $app->delete_param( 'password' );
    $app->user( undef );
    $app->response_code( '401' );
    $app->set_header( 'WWW-Authenticate', 'Basic realm="Please enter your ID and Password"' );
}

MT::Appの知られざる? メソッド

$app->response_code

レスポンスコードをセットする。

$app->set_header

カスタムHTTPレスポンスヘッダを追加指定する。

$app->delete_param

パラメタを削除する。

トラックバック(0)

トラックバックURL: http://junnama.alfasado.net/cgi/mt/mt-tb.cgi/837

コメントする

Facebook

Twitter

このブログ記事について

このページは、Junnama Nodaが2014年5月22日 18:04に書いたブログ記事です。

ひとつ前のブログ記事は「PHPerのためのMovable Type講座(その14)」です。

次のブログ記事は「PHPerのためのMovable Type講座(その15)」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 6.2.6