Служба "security.authentication.manager" зависит от несуществующей службы "security.user.provider.concrete.fos_userbundle" - PullRequest
21 голосов
/ 21 ноября 2011

Я пытаюсь включить FOSUserBundle, а также FOSFacebookBundle.
У меня есть исключение по любому URL.

Есть идеи, ребята?

ServiceNotFoundException: служба "security.authentication.manager" зависит от несуществующего сервиса "security.user.provider.concrete.fos_userbundle"

config.yml

fos_user:
    db_driver: mongodb
    firewall_name: main
    user_class: Acme\AcmeBundle\Document\User
fos_twitter:
    file: %kernel.root_dir%/../vendor/twitteroauth/twitteroauth/twitteroauth.php
    consumer_key:    ''
    consumer_secret: ''
    callback_url: ''
fos_facebook:
    file:   %kernel.root_dir%/../vendor/facebook/src/base_facebook.php
    alias:  facebook
    app_id: ''
    secret: ''
    cookie: true
    permissions: [email, user_birthday, user_location]
services:
    my.facebook.user:
        class: Acme\AcmeBundle\Security\FacebookProvider
        arguments:
            facebook: "@fos_facebook.api"
            userManager: "@fos_user.user_manager"
            validator: "@validator"
            container: "@service_container"





security:       
    factories:
      - "%kernel.root_dir%/../vendor/bundles/FOS/TwitterBundle/Resources/config/security_factories.xml"
      - "%kernel.root_dir%/../vendor/bundles/FOS/FacebookBundle/Resources/config/security_factories.xml"

    providers:
        my_fos_facebook_provider:
            id: my.facebook.user                     

    firewalls:       
        public:
          pattern:   ^/.*
          form_login:
            login_path: /login
            provider: fos_userbundle          
          fos_facebook:
            app_url: ""
            server_url: ""
            login_path: /login
            check_path: /login_check/facebook
            provider: my_fos_facebook_provider
          anonymous: true
          logout:    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_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]  

Ответы [ 3 ]

30 голосов
/ 22 ноября 2011

Я добавил идентификатор fos_userbundle в раздел провайдеров, и теперь он работает нормально.

providers:
    my_fos_facebook_provider:
        id: my.facebook.user  
    fos_userbundle:
        id: fos_user.user_manager
1 голос
/ 05 сентября 2017

Для symfony3

providers:
    in_memory:
        memory: ~
    fos_userbundle:
      id: fos_user.user_provider.username
0 голосов
/ 05 февраля 2017

Я перепробовал все предоставленные решения в stackoverflow, но ни один не помог мне.Моим решением было переименовать fos_userbundle в fos_user в security: провайдеры: раздел и в security: межсетевые экраны: main: form_login: provider: ,Надеюсь, что это может помочь кому-то там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...