0

FOSUserBundleでログインしてサイト全体を保護したい。私は次のようにsecurity.ymlを設定しようとしました:

 firewalls:
   login:
        pattern: ^/login
        anonymous: ~
        form_login:
            provider: fos_userbundle
            csrf_provider: form.csrf_provider

   main:
        pattern: ^/ 
        form_login:
            provider: fos_userbundle
            csrf_provider: form.csrf_provider

しかし、config.ymlで何を設定すればよいかわかりません

fos_user:
    db_driver: orm # other valid values are 'mongodb', 'couchdb' and 'propel'
    firewall_name: main
    user_class: My\UserBundle\Entity\User

何をしようとしてもログインできないか、次のようなエラーが発生します。

セキュリティファイアウォール構成でform_loginを使用して、ファイアウォールによって処理されるチェックパスを構成する必要があります。

編集:ここからの2番目の応答は機能しているようです: Symfony2-ファイアウォールとアクセス制御の問題

4

1 に答える 1

1

ログインファイアウォールlogin_checkは、メインファイアウォールに存在する必要があるものを誤って必要とします。ログインファイアウォールの1つを除いて、構成で何も変更する必要はありません。

firewalls:
    login:
        pattern: ^/login$

気付かない場合は、最後に$があります。これにより、パスのみが一致し、。/loginのようなパスは一致しないことが確認されます/login_check

@Pattが示唆するaccess_controlと変更は必要ではありません。

于 2013-02-10T11:32:39.677 に答える