参考にさせて頂いたページ
セキュリティ — CakePHP Cookbook 2.x ドキュメント
CakePHP 2.xでSSL通信(https)を強制する – SOAR CODE
はじめに
Securityコンポーネントについて理解が浅いままにAppControllerに色々記述すると影響範囲が大きいので、このブログ記事を読んでそのままにやるよりも、セキュリティ — CakePHP Cookbook 2.x ドキュメントとか読んで頂ければと思います。
AppController.phpの編集
Securityコンポーネントを読み込む
例として以下の通り。
//Securityコンポーネントを読み込む public $components = array( 'Security', );
httpでアクセスされたときに実行するメソッドを定義する
例として以下の通り。
//Securityコンポーネントによって禁止されているアクションが呼ばれたときに実行するメソッドを定義 public function blackhole() { $this->redirect("https://".env('SERVER_NAME').$this->here); }
blackHoleCallbackとrequireSecureの設定をする
例として以下の通り。
public function beforeFilter() { //呼び出されたアクションが、 //Securityコンポーネントによって禁止されているアクションだった場合に実行するメソッドとして、 //上記のblackholeメソッドを指定 $this->Security->blackHoleCallback = 'blackhole'; //Securityコンポーネントによって、全てのアクションにおいて、httpリクエストを禁止 //(httpリクエストの場合はblackholeメソッドが実行される) $this->Security->requireSecure(); }