Возможно, вы могли бы попробовать свойство межсетевого экрана 'context'.
Скажем, у вас есть что-то вроде конфигурации (что, вероятно, и есть):
security:
// providers etc ...
firewall:
main:
pattern: # ...
provider: my_users
http_basic: ~
api:
pattern: # ...
provider: my_users
http_basic: ~
В этом случае сеанс пользователябудет содержать свойство «_security_main» после аутентификации на «основном» брандмауэре, а затем, когда они попытаются получить доступ к местоположению «api», им будет предложено повторно выполнить аутентификацию, а затем получит свойство сеанса «_security_api».
Чтобы предотвратить это повторное приглашение, вы можете добавить свойство 'context' к каждому определению брандмауэра, для которого вы хотите использовать одну и ту же аутентификацию - так:
security:
# providers etc ...
firewall:
main:
pattern: # ...
provider: my_users
http_basic: ~
context: primary_auth # new
api:
pattern: # ...
provider: my_users
http_basic: ~
context: primary_auth # new
В этом случае при аутентификации с помощью 'main 'firewall, свойство' _security_primary_auth 'будет установлено в сеансе пользователя.Любые последующие запросы внутри firewill 'api' будут затем использовать значение '_security_primary_auth' для установления статуса аутентификации (и, таким образом, пользователь будет выглядеть аутентифицированным).
Конечно, это совместное использование контекста аутентификации будет работать в обоих направлениях (независимо от того, выполняют ли они авторизацию сначала с помощью основного или межсетевого экрана api) - если бы вы хотели только кратковременность в одном направлении, все было бы сложнее.
Надеюсь, это поможет.