У меня есть приложение Symfony, которое находится внутри пакета администрирования Sonata для административной части, с собственным брандмауэром (admin
) и брандмауэром для пользовательской части приложения (main
).
В настоящее время администратор, связанный с sonata, не может получить доступ к API, предназначенному для пользователя, поскольку он аутентифицирован для аутентификатора Sonata Admin Bundle, а для API он видит его как нулевого пользователя или не прошедшего аутентификацию.
Я хочу разрешить администратору доступ к API, созданному для части приложения, которая находится за брандмауэром для пользовательской части.
Конфигурация для брандмауэров в security.yaml
file:
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
admin:
pattern: ^/admin(.*)
form_login:
provider: app_user_admin
login_path: admin_login
use_forward: false
check_path: admin_login
failure_path: null
logout:
path: admin_logout
target: admin_login
anonymous: true
guard:
authenticators:
- App\Security\AdminLoginAuthenticator
main:
anonymous: true
logout:
path: security_logout
guard:
authenticators:
- App\Security\UserLoginAuthenticator
Есть ли способ соединить два аутентификатора для администратора?Например, при успешном входе в систему для администратора, чтобы вызвать аутентификатор для main
брандмауэра?