2

以下のコードで次のエラーが発生します。

ServiceNotFoundException: The service "security.firewall.map.context.main" has a dependency on a non-existent service "security.user.provider.concrete.fos_user_bundle".

これは、プロバイダーを追加した後に発生しました。chain_provider:プロバイダーを削除すると、問題なく動作します。理由はありますか?

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

    providers:
        fos_userbundle:
            id: fos_user.user_provider.username_email
        my_fos_facebook_provider:
            id: my.facebook.user
        chain_provider:
            chain:
                providers: [fos_user_bundle, my_fos_facebook_provider]
        in_memory:
            memory:
                users:
                    user:  { password: userpass, roles: [ 'ROLE_USER' ] }
                    admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] }

    encoders:
        FOS\UserBundle\Model\UserInterface: sha512

    firewalls:
        main:
            pattern: ^/.*
            form_login:
                login_path: fos_user_security_login
                check_path: fos_user_security_check   
                provider: fos_userbundle
            fos_facebook:
                app_url: "http://apps.facebook.com/myapp/"
                server_url: "http://localhost/Symfony/web/app_dev.php"
                login_path: fos_user_security_login
                check_path: fos_user_security_check
                default_target_path: /
                provider: my_fos_facebook_provider
            anonymous: true
            logout: 
                path:   /logout
                target: / 
                handlers: ["fos_facebook.logout_handler"]
            #http_basic:
            #    realm: "Secured Demo Area"
        login:
            pattern:  ^/login$
            security: false
4

2 に答える 2

2

これは FOSFacebookBundle ドキュメントのバグです。プロバイダー名として fos_userbundle を使用し、fos_user_bundle (アンダースコアに注意してください) を使用しないでください。

于 2013-01-08T10:19:44.497 に答える
0

'my_fos_facebook_provider'を追加しましたか?'my.facebook.user service'(最後の2行)にバインドする必要があります。

    providers:
        chainprovider:
            chain:
                providers: [fos_userbundle, my_fos_facebook_provider]
    fos_userbundle:
        id: fos_user.user_provider.username
    my_fos_facebook_provider:
        id: my.facebook.user
于 2013-02-24T11:07:28.050 に答える