documentationには、特定のルートのアクセス制御を管理する方法が多数あります。今、これらのルートはこれらのみROLES
なし他にアクセスすることができsymfony 2 - コントローラのアクセスを制御するためのisGranted()コントローラ
security:
access_control:
- { path: ^/$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/trainee, roles: ROLE_TRAINEE }
- { path: ^/university, roles: ROLE_UNIVERSITY_PROFESSOR }
- { path: ^/company, roles: ROLE_COMPANY_TUTOR }
:
があり、私は私がどの役割によってアクセスできるページ記述security.yml
の私access_control
ブロックを持っています。
これらのルートにはいくつかのフォームがありますが、access_control
で十分であるとすれば、ROLE
には届かないでしょうか?
私は人々がフォームの送信でisGranted()
をputingているインターネット上のいくつかの例を見ました:
if ($form->isValid()) {
if (!$authorizationChecker->isGranted('ROLE_TRAINEE')) {
throw new AccessDeniedException();
}
// ...
}
しかし、再び、彼らは、コントローラの内部からaccess_control
のみからこれらのルートを保護している場合、私はわかりませんisGranted()
となります。
誰かがその違いを説明できますか?isGranted()
でフォームを保護する必要がある場合でも、ルートはaccess_control
から保護されますか。私はあなたが多分このページにアクセスすることができない場合ということを考えていた自分のフォームがACCESS_CONTROLの正規表現にマッチするURIの背後にある場合は、アクセス制御ルールを持つ
何らかの形でプラットフォーム外のJSを使用してフォームを送信することは可能ですか?それとも、心配してはいけないことですか?私はルートが保護されている方法の知識が不足しています。 –
データがどのようにポストされていても、それがエンドアクセス制御ルールの背後にあるエンドポイントにポストされていると、アクセス制御ルールが有効になります –