2013-10-17 43 views
2

整合FOSUserBundle我想FOSUserBundle整合與FOSOAuthServerBundle到proect我RESTFul APIs但我正在逐漸在訪問登陸頁面下面的錯誤,我是很新的,所以我不知道如何擺脫掉這個錯誤。錯誤而與FOSOAuthServer

在這裏,我試圖打開的FOSUserBundle一個登錄表單,這樣我就可以登錄到它,並獲得令牌

enter image description here

這裏是我的security.yml

# FOR FOSUserBundle 

security: 

    providers: 
     fos_userbundle: 
      id: fos_user.user_provider.username 

    encoders: 
     "FOS\UserBundle\Model\UserInterface": sha512 

    firewalls: 
     main: 
      pattern: ^/ 
      form_login: 
       provider: fos_userbundle 
       csrf_provider: form.csrf_provider 
      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 } 

    role_hierarchy: 
     ROLE_ADMIN:  ROLE_USER 
     ROLE_SUPER_ADMIN: ROLE_ADMIN 


# FOR FOSOAuthServerBundle 

security: 
    providers: 
     fos_userbundle: 
      id: fos_user.user_provider.username 
    firewalls: 
     oauth_token: 
      pattern: ^/oauth/v2/token 
      security: false 


     oauth_authorize: 
      pattern: ^/oauth/v2/auth 
      form_login: 
       provider: fos_userbundle 
       check_path: /oauth/v2/auth/login_check 
       login_path: /oauth/v2/auth/login 
      anonymous: true 
      # Add your favorite authentication process here 

     api: 
      pattern: ^/api 
      fos_oauth: true 
      stateless: true 
      anonymous: true # can be omitted as its default value 

    access_control: 
      - { path: ^/api, roles: [ IS_AUTHENTICATED_FULLY ] } 

回答

4

我相信你security.yml應該是這樣的:

security: 
    providers: 
     fos_userbundle: 
      id: fos_user.user_provider.username 

    encoders: 
     "FOS\UserBundle\Model\UserInterface": sha512 

firewalls: 
    oauth_token: 
     pattern: ^/oauth/v2/token 
     security: false 


    oauth_authorize: 
     pattern: ^/oauth/v2/auth 
     form_login: 
      provider: fos_userbundle 
      check_path: /oauth/v2/auth/login_check 
      login_path: /oauth/v2/auth/login 
     anonymous: true 
     # Add your favorite authentication process here 

    api: 
     pattern: ^/api 
     fos_oauth: true 
     stateless: true 
     anonymous: true # can be omitted as its default value 
    main: 
     pattern: ^/ 
     form_login: 
      provider: fos_userbundle 
      csrf_provider: form.csrf_provider 
     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 } 
    - { path: ^/api, roles: [ IS_AUTHENTICATED_FULLY ] } 

role_hierarchy: 
    ROLE_ADMIN:  ROLE_USER 
    ROLE_SUPER_ADMIN: ROLE_ADMIN 
0

您將要覆蓋第一次security指令,在配置文件中第二次添加密鑰。

將兩種配置(security.firewalls,security.access_control,...)合併爲一個security:指令,您應該很好。