Всем привет!
В приложении две формы, две сущности - админ и юзер (сразу оговорюсь, что в одну соединить их не хочу да и не могу, хоть это и решило бы проблему).
По отдельности фаерволы работают отлично, но если закодить их вместе, то второй, который нижний (user) отказывается выполнять check_path и просто рендерит заново страницу логина без вывода ошибок. Если поменять admin и user фаерволы в коде местами, то глючить начинает тот, который окажется внизу, что как бы намекает, но всё равно не могу понять в чём ошибка. Пробовал экспериментировать с pattern фаервола (кстати так и нашёл подробной инфы за что он отвечает, в документации лишь общие фразы) - эффекта не дало, кроме различных багов.
# app/config/security.yml
security:
encoders:
user_provider:
class: UserBundle\Entity\User
algorithm: plaintext
ignore_case: false
admin_provider:
class: AdminBundle\Entity\Admin
algorithm: plaintext
ignore_case: false
Symfony\Component\Security\Core\User\User: plaintext
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_ROOT: ROLE_ADMIN
providers:
administration_provider:
chain:
providers: [root_provider, admin_provider]
root_provider:
memory:
users:
test@test.ru:
password: 123
roles: 'ROLE_ROOT'
admin_provider:
entity:
class: AdminBundle:Admin
property: email
user_provider:
entity:
class: UserBundle:User
property: email
firewalls:
admin:
pattern: ^/
anonymous: ~
form_login:
login_path: admin
check_path: admin
default_target_path: dashboard
provider: administration_provider
logout:
path: admin_logout
target: /admin
user:
pattern: ^/
anonymous: ~
form_login:
login_path: login
check_path: login
default_target_path: profile
provider: user_provider
logout:
path: user_logout
target: /
access_control:
- { path: ^/dashboard, role: ROLE_ADMIN }
- { path: ^/profile, role: ROLE_USER }
- { path: /.*, role: IS_AUTHENTICATED_ANONYMOUSLY }
Буду очень признателен, если подскажете где моя ошибка