Я использую FOS UserBundle в своем проекте Symfony 3.3, и у меня есть два брандмауэра, потому что администраторы и пользователи подключаются из разных форм входа (с разными URL-адресами). Я хотел бы ограничить доступ к панели администратора, только если учетная запись, используемая для ведения журнала, предоставлена ADMIN_ROLE. То есть, если я пытаюсь пройти аутентификацию с помощью простой учетной записи пользователя, я получаю сообщение «Неверные учетные данные». Есть ли способ указать брандмауэру разрешать подключение только пользователям определенной роли?
мой раздел брандмауэров security.yml:
firewalls:
admin:
pattern: ^/admin
form_login:
provider: fos_userbundle
csrf_token_generator: security.csrf.token_manager
login_path: /admin
check_path: /admin/login_check
default_target_path: /admin
success_handler: app.security.adminauthentication_handler
failure_handler: app.security.adminauthentication_handler
logout:
path: /admin/logout
target: /admin
anonymous: true
context: application
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_token_generator: security.csrf.token_manager
success_handler: app.security.authentication_handler
failure_handler: app.security.authentication_handler
logout: true
anonymous: true
Обратите внимание, что я использую AJAX для обеих форм входа.
Спасибо




просто добавьте это в свой security.yml в разделе безопасности следующим образом:
> security :
access_control :
- { path: ^/mysite/dashboard/, role: ROLE_ADMIN }
Вы должны определить контроль доступа