2013-01-14 12 views
6

Sto cercando di creare un server oauth2 basato su FOSOauthServerBundle, FOSRestBundle e FOSUserBundle. Ho creato un'applicazione demo per testare la mia oauth-server ed è venuto a mancare la ricezione dei dati tramite il GET reguestaccesso ai metodi/api nel server oauth2

(ha ricevuto 401 errore 'errore = "ACCESS_DENIED", ERROR_DESCRIPTION = "OAuth2 autenticazione richiesto"'),

nonostante il fatto che l'utente sia stato autenticato e il client abbia ricevuto correttamente un token di accesso.

Come devo implementare i controller api in modo che oauth2 esegua il processo di autenticazione?

Inoltre, vorrei dare un'occhiata al vero esempio di server oauth funzionante basato su quei pacchetti in modo da poter controllare la mia applicazione su di esso.

mia security.yml:

jms_security_extra: 
    secure_all_services: false 
    expressions: true 

security: 
acl: 
    connection: default 

role_hierarchy: 
    ROLE_ADMIN:  ROLE_USER 
    ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH] 

providers: 
    in_memory: 
     memory: 
      users: 
       user: { password: userpass, roles: [ 'ROLE_USER' ] } 
       admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] } 
    fos_userbundle: 
     id: fos_user.user_provider.username 

encoders: 
     FOS\UserBundle\Model\UserInterface: sha512 
     Symfony\Component\Security\Core\User\User: plaintext 

firewalls: 
    api: 
     pattern: ^/api 
     fos_oauth: true 
     stateless: true 

    oauth_authorize: 
     pattern: ^/oauth/v2/auth 
     form_login: 
      provider: fos_userbundle 
      check_path: /oauth/v2/auth_login_check 
      login_path: /oauth/v2/auth_login 
      use_referer: true 
     anonymous: true 

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

    secured_area: 
     pattern: ^/ 
     anonymous: ~ 
     form_login: 
      provider: fos_userbundle 
      check_path: /login_check 
      login_path: /login 
      always_use_default_target_path: true 
      default_target_path:/

access_control: 
    - { path: ^/oauth/v2/auth_login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/oauth/v2/auth, role: ROLE_USER } 
    - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY} 
    - { path: ^/, roles: ROLE_USER } 
    - { path: ^/api, roles: [ IS_AUTHENTICATED_FULLY ] } 

Grazie.

+0

risolto. il problema era che non ho inviato il token di accesso come parametro nelle mie richieste, ma l'ho impostato nell'intestazione. – user1976651

+8

forse potresti rispondere alla tua stessa domanda per aiutare altre persone a sperimentare gli stessi problemi. –

+0

@ user1976651 puoi condividere con noi il codice che passa il token di accesso alla richiesta? Questo codice è javascript? –

risposta