2016-04-02 5 views
1

symfony2バージョン3.0に新しく、ログインフォームを作成しようとしています。しかし、私はsecurity.ymlの設定に固執していると私は何が起こっているのか知りません。私はGoogleで3時間も運行はしていない。あなたが私を助けてくれることを願います。これまでのところ私のコードです。symfony2 security.yml正しい設定

security: 
    encoders: 
    AppBundle\Entity\User: 
     algorithm: bcrypt 

    providers: 
    db_provider: 
     entity: 
     class: AppBundle:User 
     property: username 

    firewalls: 
    login_area: 
     pattern: ^/user/login$ 
     security: false 

    secured_area: 
     pattern: ^/admin 
     anonymous: ~ 
     form_login: 
     login_path: user/login 
     check_path: user/login-check 
     always_use_default_target_path: true 
     default_target_path: /admin 
     provider: db_provider 

私はhttp://localhost:8000/adminに行くたびに、それはあなたのlogin_checkパスがファイアウォールの1でカバーしなければならない

The check_path "user/login-check" for login method "form_login" is not matched by the firewall pattern "^/admin". 


Invalid configuration for path "security.firewalls.secured_area": The check_path "user/login-check" for login method "form_login" is not matched by the firewall pattern "^/admin". 
+0

なぜセキュリティとエンコーダが同じ垂直配置ですか? – Rinat

+0

私のファイルで整列が正しいのではなく、ちょうどここでコピーした後で整列が動かされました – Makubex

+2

応答は論理チェックがadmin/login-check insteaのようなadminからuser/login-checkのように開始するはずです。関連するルーティングを変更してこれを試すことはできますか? – Rinat

答えて

0

私は、このエラーが発生します。

firewalls: 
    login_area: 
     pattern: ^/admin/user/login$ 
     security: false 

    secured_area: 
     pattern: ^/admin 
     anonymous: ~ 
     form_login: 
      login_path: /admin/user/login 
      check_path: /admin/user/login-check 
      always_use_default_target_path: true 
      default_target_path: /admin 
      provider: db_provider 

access_control: 
    - { path: ^/admin/user/login, role: IS_AUTHENTICATED_ANONYMOUSLY } 

symfony.com docsから:

あなたcheck_pathのURL(例えば/ログインが)あなたはこの例では(フォームのログインに使用している ファイアウォール、単一 ファイアウォールの背後にあることを確認します/ loginを含むすべてのURLに一致します)。/loginが ファイアウォールと一致しない場合は、パス "/ login"例外のコントローラを見つけることができません。

関連する問題