Связка пользователей Symfony2 - Вы запросили несуществующую услугу "безопасность.проверка пользователей"


Я использую Symfony 2 и FOSUserBundle. Я могу войти в систему, выйти из системы и просмотреть профиль.

Проблема: Когда я захожу в "/регистрация", заполняю форму и нажимаю ввод, я получаю следующую ошибку:

Вы запросили несуществующую услугу "security.user_checker". 500 Внутренняя ошибка сервера - Исключение ServiceNotFoundException

Похоже, что у меня есть какая-то дополнительная конфигурация или что-то в этом роде, но я ничего не могу найти об этом.

Часть конфигурация.yml:

fos_user:
    db_driver: orm
    firewall_name: fos_user
    user_class: Blogger\BlogBundle\Entity\User

Безопасность.yml:

security:
    encoders:
        Symfony\Component\Security\Core\User\User: plaintext
        FOS\UserBundle\Model\UserInterface: sha512

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

    providers:
        in_memory:
            users:
                user:  { password: userpass, roles: [ 'ROLE_USER' ] }
                admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] }
        fos_user:
            id: fos_user.user_manager

    firewalls:
        dev:
            pattern:  ^/(_(profiler|wdt)|css|images|js)/
            security: false

        fos_user:
            pattern:    ^/
            provider:   fos_user
            form_login:
                check_path: /login_check
                login_path: /login
            logout:
                path:   /logout
                target: /
            anonymous: ~

    access_control:
        - { path: /secured/admin, roles: ROLE_ADMIN }
        - { path: ^/login$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/register, roles: IS_AUTHENTICATED_ANONYMOUSLY }

ОБНОВЛЕНИЕ

Трассировка стека:

http://i.stack.imgur.com/vsGwF.png

Author: j0k, 2012-01-17

3 answers

Убедитесь, что вы указали версию для FOSUserBundle. Заголовок репозитория выровнен с заголовком Symfony, а не 2.0.9.

[FOSUserBundle]
    git=git://github.com/FriendsOfSymfony/FOSUserBundle.git
    target=/bundles/FOS/UserBundle
    version=1.0.0
 3
Author: Louis-Philippe Huberdeau, 2012-01-16 22:26:41

Если вы обновляете FOSUserBundle (или любой пакет, если на то пошло), вам необходимо убедиться, что вы имитируете изменения, внесенные в FOSUserBundle, для любых файлов, которые вы перезаписываете.

В моем конкретном случае в FOSUserBundle контроллера регистрации изменил значение с security.user_checker на fos_user.user_checker в методе authenticateuser, поэтому я сделал то же самое изменение в своем контроллере.

Каждый раз, когда вы обновляете поставщиков, вам необходимо убедиться, что файлы (контроллеры, службы и т.д.), которые вы перезаписываете в своем пакете, не зависят от класса обслуживания или метода, который был удален.

 1
Author: Kubee, 2012-05-03 22:34:07

Правильно ли вы регистрируете услуги? Или, может быть, Вы забыли добавить маршрут для этой службы?

 0
Author: Pawel, 2012-01-16 21:18:37