2014-10-29 86 views
0

我遵循這篇文章,並與Github實現OAuth2,成功驗證後,我得到以下錯誤。HWIOAuthBundle與FosUserbundle配置問題的集成

無法找到路徑「/ secure_area/login/check-github」的控制器。也許你忘了在路由配置中添加匹配路由?

config.yml

hwi_oauth: 
    # name of the firewall in which this bundle is active, this setting MUST be set 
    firewall_name: secure_area 
    connect: 
     confirmation: true 
     #account_connector: hwi_oauth.user.provider.fosub_bridge 
     #registration_form_handler: hwi_oauth.registration.form.handler.fosub_bridge 
     #registration_form: fos_user.registration.form 

    resource_owners: 
     github: 
      type:    github 
      client_id:   a8b7e3e35e46271d10a5 
      client_secret:  6abca3ded9a19d9e2bf52b42f017d23a745bd540 
      scope:    "user:email" 

    fosub: 
     # try 30 times to check if a username is available (foo, foo1, foo2 etc) 
     username_iterations: 30 

     # mapping between resource owners (see below) and properties 
     properties: 
      github: githubID 

security.yml

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

    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_provider: form.csrf_provider 
      logout:  true 
      anonymous: true 
     secure_area: 
      pattern: ^/secure_area 

      oauth: 
       failure_path: /secure_area/connect 
       login_path: /secure_area/connect 
       check_path: /secure_area/connect 
       provider: fos_userbundle 
       resource_owners: 
        github:   "/secure_area/login/check-github" 
       oauth_user_provider: 
        service: hwi_oauth.user.provider.fosub_bridge 

      anonymous: true 
      logout: 
       path:   /secure_area/logout 
       target:   /secure_area/connect #where to go after logout 


    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 } 
     - { path: ^/secure_area/login, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/secure_area/connect, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/secure_area, roles: ROLE_USER } 
+0

感謝固定縮進亞當。 – amit 2014-10-29 13:26:18

+0

下次您可能希望屏蔽掉您的Github安全令牌。如果你還沒有這樣做,我會在Github上重置它們:) – 2014-11-15 07:38:46

回答

0

你有什麼在你的路由配置。你有hwi_github_login的路由設置嗎?

還添加了另一條名爲hwi_github_login的路由,它與在創建Github應用程序期間給出的回調URL相同。這是防火牆將攔截以檢查身份驗證的網址。

你的routing.yml應該有:

hwi_oauth_redirect: 
resource: "@HWIOAuthBundle/Resources/config/routing/redirect.xml" 
prefix: /secure_area/connect 

hwi_oauth_login: 
resource: "@HWIOAuthBundle/Resources/config/routing/login.xml" 
prefix: /secure_area/connect 

hwi_oauth_connect: 
resource: "@HWIOAuthBundle/Resources/config/routing/connect.xml" 
prefix: /secure_area/connect 

hwi_github_login: 
pattern: /secure_area/login/check-github