2017-02-09 3 views
0

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の背後にある場合は、アクセス制御ルールを持つ

答えて

0

が、十分です(なぜあなたは、単にこれをテストいけない...?)

+0

何らかの形でプラットフォーム外のJSを使用してフォームを送信することは可能ですか?それとも、心配してはいけないことですか?私はルートが保護されている方法の知識が不足しています。 –

+0

データがどのようにポストされていても、それがエンドアクセス制御ルールの背後にあるエンドポイントにポストされていると、アクセス制御ルールが有効になります –

関連する問題