Связка пользователей 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 }
ОБНОВЛЕНИЕ
Трассировка стека:
3 answers
Убедитесь, что вы указали версию для FOSUserBundle. Заголовок репозитория выровнен с заголовком Symfony, а не 2.0.9.
[FOSUserBundle]
git=git://github.com/FriendsOfSymfony/FOSUserBundle.git
target=/bundles/FOS/UserBundle
version=1.0.0
Если вы обновляете FOSUserBundle (или любой пакет, если на то пошло), вам необходимо убедиться, что вы имитируете изменения, внесенные в FOSUserBundle, для любых файлов, которые вы перезаписываете.
В моем конкретном случае в FOSUserBundle контроллера регистрации изменил значение с security.user_checker на fos_user.user_checker в методе authenticateuser, поэтому я сделал то же самое изменение в своем контроллере.
Каждый раз, когда вы обновляете поставщиков, вам необходимо убедиться, что файлы (контроллеры, службы и т.д.), которые вы перезаписываете в своем пакете, не зависят от класса обслуживания или метода, который был удален.
Правильно ли вы регистрируете услуги? Или, может быть, Вы забыли добавить маршрут для этой службы?