1

セキュリティについては、sfGuard と Symfony のドキュメントを見ていました。しかし、コントローラー全体を保護することについてはどこにも見つかりません。セキュアと呼ばれるアクションのみがあります。

preExecuteメソッドを使用して呼び出しを試みましforward404Unless($this->getUser()->hasGroup('admin'))たが、機能しません。

security.yml と sfGuard を使用してコントローラーでのアクションを保護することはできますか? それともsymfonyでこれを行う練習はありますか? 将来変更される可能性のあるカスタム セキュリティを作成するために必要だったすべてのコントローラーを編集するのは面倒です。

ありがとうございました。

4

2 に答える 2

1

security.yml次のように使用できます。

all:
  credentials: [admin]

ただし、グループで動作するかどうかはわかりません。

于 2011-07-29T10:35:10.097 に答える
1

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

app フォルダー ($sf_root/app_name/config/security.yml になります) に security.yml を作成し、次のように指定するとします。

default:
  is_secure:true

これにより、すべてのアプリがデフォルトで安全になり (ユーザーはログインする必要があります)、必要に応じて上書きできるようになります。ファイル モジュールに、管理者の資格情報を必要とするアクション「ダウンロード」があるとしますが、他のすべてのアクションは、「共通」および「管理者」の資格情報を持つユーザーが使用できるため、$sf_root/ に security.yml を作成する必要があります。 apps/app_name/modules/file/config/ を定義します:

all:
  credentials: [[ common , administrator]]

download:
  credentials: [ administrator ]

セキュリティと高度なクレデンシャルの詳細については、Action Securityの symfony ページをチェックしてください。

于 2011-07-29T15:14:53.093 に答える