HOME>WEBプログラム覚書>[CakePHP2.1.X] Authコンポーネントのallowとdeny

[CakePHP2.1.X] Authコンポーネントのallowとdeny

allowdenyで全てのURLを対象とする場合、1系では*を引数にしてましたが2.1.Xでは引数は不要になったみたいです。

基本全てのリクエストを認証不要にして、特定のアクションだけ認証かけたい場合に allow('*')とするとうまく動かないみたいです。

CakePHP 1.Xの場合

1系の場合、多分こんな感じで動いてたはず?

AppController

  1. <?php
  2. class AppController extends Controller {
  3.     function beforeFilter()
  4.     {
  5.         $this->Auth->allow('*');
  6.     }
  7. }
  8. ?>

PostsController

  1. <?php
  2. class PostsController extends Controller {
  3.     function beforeFilter()
  4.     {
  5.         parent::beforeFilter();
  6.         $this->Auth->deny('save');
  7.     }
  8. }
  9. ?>

CakePHP 2.1.Xの場合

allow()deny()も 全てのリクエストを対象とする場合、引数は不要となりました。

AppController

  1. <?php
  2. class AppController extends Controller {
  3.     public function beforeFilter()
  4.     {
  5.         $this->Auth->allow();
  6.     }
  7. }
  8. ?>

PostsController

  1. <?php
  2. class PostsController extends Controller {
  3.     public function beforeFilter()
  4.     {
  5.         parent::beforeFilter();
  6.         $this->Auth->deny('save');
  7.     }
  8. }
  9. ?>

全てのURLで認証を不要とするだけなら2.1.Xでも

AppController

  1. <?php
  2. class AppController extends Controller {
  3.     public function beforeFilter()
  4.     {
  5.         $this->Auth->allow('*');
  6.     }
  7. }
  8. ?>

で機能するっぽいんですが、deny($action)が機能してくれません。 なまじ動くだけにはまりました。

参照サイト
投稿日 2012年7月 4日 11:15
カテゴリ PHP
タグ CakePHP
トラックバック URL http://www.kantenna.com/cgi-bin/mt504/mt-tb.cgi/1307

コメント

コメントする
Name
Email Address
URL