В приложении Symfony3 отсутствует служба security.context

Я унаследовал приложение Symfony 3, которое, похоже, имеет хорошую работающую установку FOSUserBundle. Однако, когда я пытаюсь внедрить @security.context в службу, чтобы получить вошедшего в систему пользователя, я получаю ошибки о том, что @security.context является отсутствующей службой. Я попробовал проверки, которые видел в паре других потоков - убедившись, что services.yml заполнен, и убедился, что он правильно включен в мой основной файл конфигурации - и похоже, что все сделано правильно. Вот мой файл security.yml:

security:
    providers:
        fos_userbundle:
            id: fos_user.user_provider.username
        api_key_user_provider:
            id: security.user.provider.api_key

    encoders:
        FOS\UserBundle\Model\UserInterface: sha512

    firewalls:
        # disables authentication for assets and the profiler, adapt it according to your needs
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false

        # -> custom firewall for the admin area of the URL
        admin:
            pattern:            /admin(.*)
            context:            admin
            form_login:
                provider:       fos_userbundle
                login_path:     /admin/login
                use_forward:    false
                check_path:     /admin/login_check
                failure_path:   null
            logout:
                path:           /admin/logout
                target:         /admin/login
            anonymous:          true
            switch_user:        true
            remember_me:
                secret:      '%secret%'
                lifetime: 604800 # 1 week in seconds
                path:     /

        # -> end custom configuration

        hwi:
            pattern: ^/hwi
            form_login: false
            oauth:
                resource_owners:
                    twitter:  "/hwi/check-twitter"
                    instagram:  "/hwi/check-instagram"
                    google:  "/hwi/check-google"
                    facebook:  "/hwi/check-facebook"
                    apple: "/hwi/check-apple"
                login_path:   "/hwi/login"
                check_path:   "/hwi/check"
                use_forward:  false
                failure_path: "/hwi/login"
                oauth_user_provider:
                    service: app.service.hwi


        api:
            pattern: ^/api/
            form_login: false
            stateless: true
            anonymous: true
            simple_preauth:
                authenticator: 'api_key_authenticator'
            provider: api_key_user_provider
            entry_point: api_key_authenticator


    access_control:
        # URL of FOSUserBundle which need to be available to anonymous users
        - { path: ^/api/login, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/api/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/api/doc, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }

        # Admin login page needs to be access without credential
        - { path: ^/admin/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/admin/logout$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/admin/login_check$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/admin/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }

        # Secured part of the site
        # This config requires being logged for the whole site and having the admin role for the admin part.
        # Change these rules to adapt them to your needs
        - { path: ^/admin/, role: [ROLE_SONATA_ADMIN] }
        - { path: ^/.*, role: IS_AUTHENTICATED_ANONYMOUSLY }

Вход в систему работает хорошо, как и другие действия, такие как выход из системы, сброс паролей и т. д.

Но @security.context отсутствует.

Что я делаю неправильно? Эта служба устарела или что-то в этом роде?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
1
0
12
1

Ответы 1

Думаю, я понял, что мне нужно делать в новых версиях Symfony.

Похоже, я могу использовать @security.token_storage для получения токена (и, следовательно, пользователя).

Другие вопросы по теме