トップ > ラボブログ

ラボブログ

« 定額給付金計算機を作ってみました(モバイル対応) | メイン | 「あたし勇者」が面白い »

CakePHP 1.2 の Basic 認証設定があまりにも簡単すぎる

あとで読む

スパイスラボ神部です。


ちょっと前から悩んでいたのですが、CakePHP でサイト開発をするとき、Basic 認証はどうすればいいのか…という問題があります。CakePHP の Routing と、Apache のディレクトリ構造とは一対一対応ではないため、たとえば特定のコントローラ以下にのみ認証をかけたい場合などは、どこにどうやって .htaceess を置けばいいのか、と言うことに悩んでしまいます。


そこで CakePHP のフォーラムに相談してみたところ、解決方法があまりにも簡単でスマートなことに驚いてしまいました。


-Apacheが好きだ! - Favorites!


Security コンポーネントと beforFilter の活用


解決方法で提示されていたのが、こちらのブログエントリ。


-CakePHPでBasic認証対応ページを作る - blog.katsuma.tv


こちらにあるとおり、まず controller 冒頭で、


var $components = array('Security');


を設定し、次に beforeFilter 内で


$this->Security->loginOptions = array('type'=>'basic');
$this->Security->loginUsers = array(''=>'');
$this->Security->requireLogin('*');


と指定するだけ。* は全アクションを指定するワイルドカードのようです。


あまりにも簡単なので、ちょっと応用してみましょう。


サイトルートに Basic 認証をかけるには?


ここでちょっと悩むのが、home.ctp など、Router.php で密かに pages_controller を通じて呼ばれているページ群。しかしこれも /cake/libs/controller/pages_controller.php の中に同様に設定するだけ。


以前、【CakePHP】ちょっと考えてしまいがちな home.ctp のレイアウト変更 ( ラボブログ ) の記事のときにはページごとにレイアウトを指定したかったのでこの方法ではだめでしたが、今回は素直に pages_controller のお世話になりました。


これで


・サイトルートは認証をかける


・コントローラA以下には認証をかける(サイトルートと別のアカウントも可能)


・コントローラB以下はフリーアクセス


ということができ、通常の .htaccess によるディレクトリ以下の一斉指定よりも柔軟な運用ができるのではないかと思います。


この情報は参考になりましたか?


追記:ちょっと心配なこと


この指定方法の場合、htpassword を使うときと違い、パスワードが平文です。ここはちょっと心配なので、引き続き別の指定方法(define を使うとか?)でソースコードから隠蔽できないかフォーラムに引き続き相談してみようと覆います。


追記2:アクションリストの指定の方法


-cakePHP1.2でBasic認証|TONTTU.NET 群馬県 太田市


こちらに、アクションのリストを指定する方法や、Basic 認証のときに出せるメッセージなどを調整できます。

 



関連記事



ブックマークに追加する この記事についてTwitterでツイート

トラックバック

このエントリーのトラックバックURL:
http://www.spicebox.jp/cgi-bin/mt/mt-tb.cgi/891

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

mixiアプリ本
4/22発売!

mixiアプリをつくろう!
OpenSocialで学ぶ
ソーシャルアプリ



(株)スパイスボックス
神部 竜二(著)

書籍情報






検索



神部竜二
ブログ執筆者の一人です。ネットの新しい話題や Web まわりのプログラミング、Web 広告について書いていきたいと思います。


About

2009年03月06日 16:08 に投稿されたエントリーのページです。

ひとつ前の投稿は「 定額給付金計算機を作ってみました(モバイル対応) 」です。

次の投稿は「 「あたし勇者」が面白い 」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

SEO ブログパーツ  

+ インデックス数計測 +