アクセス制御
概要
- DBやテキストファイル(HTPASSWD)にユーザIDとパスワードを登録する。
- 各種アクセス制御モジュールをロードするようにアプリケーションクラスに下のような記述をする。
Authentication
Authentication::Credential::Password
Authentication::Store::Htpasswd
Authorization::Roles
- アクションクラスに下のような記述をし、ユーザ確認できなければログイン画面に飛ばすようにする。
if (!$c->user_exists) {
$c->res->redirect($c->uri_for('/login'));
return 0;
}
- アプリケーションルートクラス(MyApp::Controller::Root)のautoメソッドに上のような記述をすれば、全てのアクションクラスにアクセス制御をかけられる。
ドキュメント
普通のアクセス制御
http://search.cpan.org/perldoc?Catalyst::Manual::Tutorial::05_Authentication
役割(role)を持たせたアクセス制御
http://search.cpan.org/perldoc?Catalyst::Manual::Tutorial::06_Authorization
ロールの具体的な設定方法
選択したストアモジュールのマニュアルのroleの項を参考にする。
- Catalyst::Plugin::Authentication::Store::DBIC
- Catalyst::Plugin::Authentication::Store::Htpasswd::User
- など
Catalyst::Plugin::Authentication::Store::Htpasswd
ロールはHTPASSWDファイルの第3フィールドにカンマ区切りで記述する。詳しくはここ。