2017-07-14 43 views
0

你好,我有與fosuserbundleSymfony的 - 你必須配置支票路徑,以在安全的防火牆配置中使用form_login防火牆處理

symfony項目一個問題,當我試圖在/login連接它給我這個錯誤

您必須在您的安全防火牆配置中使用form_login配置由防火牆處理的檢查路徑。

這是我的應用程序路由文件

co_manager_back: 
    resource: "@CoManagerBackBundle/Resources/config/routing.yml" 
    prefix: /{_locale} 

co_manager_front: 
    resource: "@CoManagerFrontBundle/Resources/config/routing.yml" 
    prefix: /{_locale} 

co_manager_user: 
    resource: "@CoManagerUserBundle/Resources/config/routing.yml" 
    prefix: /{_locale} 


_liip_imagine: 
    resource: "@LiipImagineBundle/Resources/config/routing.xml" 


fos_user: 
    resource: "@FOSUserBundle/Resources/config/routing/all.xml" 
    prefix: /{_locale} 






fos_user_profile: 
    resource: "@FOSUserBundle/Resources/config/routing/profile.xml" 
    prefix: /profile 

fos_user_register: 
    resource: "@FOSUserBundle/Resources/config/routing/registration.xml" 
    prefix: /register 

fos_user_resetting: 
    resource: "@FOSUserBundle/Resources/config/routing/resetting.xml" 
    prefix: /resetting 

fos_user_change_password: 
    resource: "@FOSUserBundle/Resources/config/routing/change_password.xml" 
    prefix: /profile 

這是我的安全文件

# app/config/security.yml 
security: 
    encoders: 
     FOS\UserBundle\Model\UserInterface: bcrypt 

    role_hierarchy: 
     ROLE_ADMIN:  ROLE_USER 
     ROLE_SUPER_ADMIN: ROLE_ADMIN 

    providers: 
     fos_userbundle: 
      id: fos_user.user_provider.username 
    firewalls: 
     main: 
      pattern: ^/ 
      form_login: 
       provider: fos_userbundle 
       csrf_token_generator: security.csrf.token_manager 
       # if you are using Symfony < 2.8, use the following config instead: 
       # csrf_provider: form.csrf_provider 
       default_target_path: /admin 

      remember_me: 
       secret: '%secret%' 
       lifetime: 604800 # 1 week in seconds 
       path: /
       # by default, the feature is enabled by checking a 
       # checkbox in the login form (see below), uncomment the 
       # following line to always enable it. 
       #always_remember_me: true  



      logout:  true 
      anonymous: true 

    access_control: 
     - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/admin/, role: ROLE_ADMIN } 

這是我的配置文件

# fos user 
fos_user: 
    db_driver: orm # other valid values are 'mongodb' and 'couchdb' 
    firewall_name: main 
    user_class: CoManager\UserBundle\Entity\User 
    from_email: 
     address: [email protected] #"%mailer_user%" 
     sender_name: yassine #"%mailer_user%" 

,希望能幫助我。謝謝 。

+0

我也面臨着同樣的問題,我已經更新SF 2.4至2.8 SF,在/ login_check方法,它顯示你必須配置支票路徑進行處理由安全防火牆配置中的防火牆使用form_login。 in /var/www/html/Soundbasics_production/SoundBasics_Symfony/src/soundBasics/UserBundle/Controller/SecurityController.php on line 270 exception –

回答

0

一下添加到路由和嘗試:

fos_user_security_login: 
path: /login 
defaults: { _controller: FOSUserBundle:Security:login, _method: POST } 

fos_user_security_logout: 
path: /logout 
defaults: { _controller: FOSUserBundle:Security:logout, _method: POST } 
+0

當我添加它的代碼,它給我沒有路由發現「GET /登錄 –

+0

好吧,可能會嘗試在防火牆中添加'check_path:fos_user_security_login_check'和 'login_path:fos_user_security_login'在'form_login'下 – Arcv

+0

沒有任何改變它總是給我你必須配置防火牆使用form_login在你的安全防火牆配置中處理的檢查路徑 –