2013-01-14 15 views
6

FOSOauthServerBundle,FOSRestBundleおよびFOSUserBundleに基づいてoauth2サーバーを作成しようとしています。私は私のoauth-serverをテストするためのデモアプリケーションを作成し、それがを介してデータを受信できなかったreguestがoauth2サーバーの/ apiメソッドにアクセス

(401エラー「エラー= 『ACCESS_DENIED』、しましたerror_description = 『必要なのOAuth2 認証』を」受信)GET

にもかかわらず、ユーザーが認証され、クライアントがアクセストークンを正しく受信したという事実にもかかわらず、

oauth2が認証プロセスを実行するように、apiコントローラを実装する方法を教えてください。

また、これらのバンドルに基づいて実際のoauthサーバーの例を見ていきたいので、自分のアプリケーションをチェックすることができます。

私の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 ] } 

感謝。

+0

を解決しました。問題は、私は私の要求でパラメータとしてアクセストークンを送信していないが、ヘッダーに設定していたということでした。 – user1976651

+8

あなた自身の質問に答えて、同じ問題を実験する他の人を助けることができるかもしれません。 –

+0

@ user1976651リクエストでアクセストークンを渡すコードを私たちと共有できますか?このコードはjavascriptですか? –

答えて

関連する問題