2011-07-29 2 views
1

私はセキュリティに関するsfGuardとSymfonyのドキュメントを見ていました。しかし、コントローラ全体を安全に保つことについてはどこにも見つけることができません。アクションSecureだけが呼ばれます。symfonyのコントローラ全体をsfGuardで保護しますか?

forward404Unless($this->getUser()->hasGroup('admin'))を呼び出すためにpreExecuteメソッドを使用しようとしましたが、機能しません。

security.ymlとsfGuardを使用して、コントローラでアクションを保護することはできますか?あるいは、symfonyでこれを行う習慣がありますか?将来変化する可能性があるカスタムセキュリティを作成しなければならなかったすべてのコントローラを編集するのは面倒です。

ありがとうございます。

答えて

1

よくsymfonyは、すべてのプロジェクト/アプリケーション/モジュール/アクションをより再利用可能かつ実用的な方法で設定できるようにするカスケード設定スキーマを使用します。セキュリティが同じことが起こると、security.ymlを使ってアクセス制限を定義することができます。

アプリフォルダ内のsecurity.yml(つまり$ sf_root/APP_NAME/configに/ security.ymlファイルになります)、このようなものを指定する作成する場合:

default: 
    is_secure:true 

をそれはすべてあなたのアプリケーションを安全になりますデフォルトでは(ユーザーはログインする必要があります)、適切なときに上書きすることができます。ファイルモジュールには管理者資格情報を必要とするアクション "ダウンロード"がありますが、他のすべてのアクションは "共通"と "管理者"の資格情報を持つユーザーが使用できるので、$ sf_root /アプリケーション/ APP_NAME /モジュール/ファイル/設定/と定義します。

all: 
    credentials: [[ common , administrator]] 

download: 
    credentials: [ administrator ] 

セキュリティと高度な資格情報の詳細については、Action Security

にsymfonyのページをご覧ください
1

あなたはこのようsecurity.ymlを使用することができます。

all: 
    credentials: [admin] 

私はそれはしかし、グループでの作業についてはよく分かりません。

関連する問題