Служба "security.authentication.manager" зависит от несуществующей службы "security.user.provider.concrete.fos_userbundle"
Я пытаюсь включить FOSUserBundle, а также FOSFacebookBundle.
У меня есть исключение по любому адресу.
Есть идеи, ребята?
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 ответа
Я добавил идентификатор fos_userbundle в раздел провайдеров, и теперь он работает нормально.
providers:
my_fos_facebook_provider:
id: my.facebook.user
fos_userbundle:
id: fos_user.user_manager
Для symfony3
providers:
in_memory:
memory: ~
fos_userbundle:
id: fos_user.user_provider.username
Я перепробовал все предоставленные решения в stackru, но ни один не помог мне.
Мое решение состояло в том, чтобы переименовать fos_userbundle в fos_user в разделе безопасность: поставщики: и в разделе безопасность: брандмауэры: главный: form_login: поставщик:.
Надеюсь, что это может помочь кому-то там.