Search code examples
phpsymfonyservicefosuserbundlesymfony4

The service "security.context_listener.0" has a dependency on a non-existent service "fos_user.user_manager"


I have been having this error and I don't know what is wrong with my code. I have checked for various ways to correct it but I can't seem to find.

I keep getting this error:

The service "security.context_listener.0" has a dependency on a non-existent service "fos_user.user_manager"

This is services.yaml

parameters:
img_directory: '%kernel.root_dir%/../public/images'
imports:
    resource: parameters.yml 

locale: en

fos_user:
    db_driver: orm # other valid values are 'mongodb' and 'couchdb'
    firewall_name: main
    user_class: AppBundle\Entity\User

    from_email:
        address: "[email protected]"
        sender_name: "Great Blog"

knp_paginator:
    page_range: 4                       # number of links showed in the pagination menu (e.g: you have 10 pages, a page_range of 3, on the 5th page you'll see links to page 4, 5, 6)
    default_options:                                 
        page_name: page                 # page query parameter name
        sort_field_name: sort           # sort field query parameter name
        sort_direction_name: direction  # sort direction query parameter name
        distinct: true                  # ensure distinct results, useful when ORM queries are using GROUP BY statements
        filter_field_name: filterField  # filter field query parameter name
        filter_value_name: filterValue  # filter value query paameter name
    template:                                        
        pagination: '@KnpPaginator/Pagination/twitter_bootstrap_v4_pagination.html.twig'     # sliding pagination controls template                                    
        sortable: '@KnpPaginator/Pagination/sortable_link.html.twig' # sort link template                                
        filtration: '@KnpPaginator/Pagination/filtration.html.twig'  # filters template

services:
    # default configuration for services in *this* file
    _defaults:
        autowire: true      # Automatically injects dependencies in your services.
        autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
        public: false       # Allows optimizing the container by removing unused services; this also means
                            # fetching services directly from the container via $container->get() won't work.
                            # The best practice is to be explicit about your dependencies anyway.
# makes classes in src/ available to be used as services
# this creates a service per class whose id is the fully-qualified class name
App\:
    resource: '../src/*'
    exclude: '../src/{Entity,Migrations,Tests,Kernel.php}'

# controllers are imported separately to make sure services can be injected
# as action arguments even if you don't extend any base controller class
App\Controller\:
    resource: '../src/Controller'
    tags: ['controller.service_arguments']

This is security.yaml

security:
providers:
    fos_user:
        id: fos_user.user_manager
encoders:
    FOS\UserBundle\Model\UserInterface: bcrypt
    # Symfony\Component\Security\Core\User\User:
    #     algorithm: bcrypt
    #     cost: 12
    # App\Entity\User:
    #     algorithm: bcrypt
    #     cost: 12

role_hierarchy:
    ROLE_ADMIN:       ROLE_USER
    ROLE_SUPER_ADMIN: ROLE_ADMIN


firewalls:
    dev:
        pattern: ^/(_(profiler|wdt)|css|images|js)/
        security: false
    main:
        pattern: ^/
        form_login:
            provider: fos_user
            csrf_token_generator: security.csrf.token_manager # Use form.csrf_provider instead for Symfony <2.4
        logout:       true
        anonymous:    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 }

Please I would need some help to know where exactly the error is coming from. Thanks guys.


Solution

  • There's an error in your security configuration. The provider shouldn't be user_manager.

    Change it to:

    security:
        providers:
            fos_user:
                id: fos_user.user_provider.username