Quizás podría probar la propiedad de firewall 'context'.
Digamos que tiene un algo de configuración como esta (que presumiblemente lo hace):
security:
// providers etc ...
firewall:
main:
pattern: # ...
provider: my_users
http_basic: ~
api:
pattern: # ...
provider: my_users
http_basic: ~
En este caso, la sesión del usuario contendrá una propiedad '_security_main' después de autenticar contra el servidor de seguridad 'principal', y luego cuando intenten acceder a una ubicación 'api', se les pedirá que vuelvan a realizar la autenticación y luego obtendrán una propiedad de sesión '_security_api'.
Para evitar que esta re-solicitud, puede añadir la propiedad 'contexto' a cada definición de servidor de seguridad que desea compartir la misma autenticación - así:
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
En este caso, después de la autenticación con el 'principal La propiedad 'firewall, a' _security_primary_auth 'se establecerá en la sesión del usuario. Cualquier solicitud posterior dentro del firewill 'api' usará entonces el valor de '_security_primary_auth' para establecer el estado de autenticación (y, por lo tanto, el usuario aparecerá autenticado).
Por supuesto, este intercambio de contexto de autenticación funcionará en ambos sentidos (ya sea que se autentiquen primero con el firewall 'principal' o 'api'); si solo desea transitoriedad en una dirección, las cosas serían más complejas.
Espero que esto ayude.
brilliant! Funciona de maravilla. – anushr
¡Bien, estaba buscando esto por mucho tiempo! – PMoubed
Tengo exactamente el mismo problema, la única diferencia es que el firewall "principal" se autentica utilizando un formulario de inicio de sesión en lugar de http_basic, por lo que el firewall "api" solicita al usuario que vuelva a iniciar sesión incluso cuando el usuario se autentica mediante el formulario de inicio de sesión. ¿Hay alguna manera de hacer que funcione? – Xocoatzin