CakePHP:Security Componentでハマる(最中)

CakePHP1.2ガイドブック
CakePHP1.2ガイドブック
おすすめ平均
starsサンプルコードが提供されず不便
stars入門から応用まで対応

Amazonで詳しく見る by G-Tools

Security Componentを使っているのだけれど、全くわからず…。

// コントローラー
class EnqueteController extends EnqueteAppController{
  var $components = array('Security');

  function beforeFilter(){
    parent::beforeFilter();
    // CSRF&リロード対策
    $this->Security->requireAuth('post_data');
    $this->Security->blackHoleCallback = '_reload_error';
  }

  /**
   * アンケートの回答を受付
   */
  function post_data(){
    // 受付処理
  }

  function admin_add(){
    // 管理者用アンケート追加処理
  }

  function _reload_error(){
    // blackHole処理
  }
}

というふうに作っているのであるが、admin_addで、データをpostすると正常な場合は登録されるのであるが、わざとエラーを起こした場合に、validates()の結果をフォームに反映するのではなく、blackHoleCallbackで設定されている_reload_errorメソッドを実行されてしまう…。

validates()の結果がエラーになるとblackHole行きになるの???

1.2.5 SecurityComponentでハマったときに確認するポイント

を参照して、$form->create()と$form->end()を使っているのだが…。
(ちなみにtableFormヘルパーを作ってるので、$tableFrom->create()とかだけど)
$tableForm->submit(‘送信’);も使ってるけど。

だいたい$this->Security->requireAuth()にメソッド名加えてないんだから、Securityコンポーネントに関係ない処理になるんじゃないの?また、もしブラックホールに吸い込まれるんなら、この場合は正常なときも吸い込まれるんじゃないの?わけわかんないっす・・・。

とりあえず、Securityコンポーネントを外して実装してから考えようか(ガックリ…)
なんか実装がどんどん遅れていくなぁ。
フレームワーク使う目的って効率上げることなのになぁ。


カテゴリー CakePHP | タグ | パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です