Tengo una aplicación Symfony con 2 áreas, una para clientes que acceden desde una página web y otra para llamadas API desde AJAX y servicios web.¿Cómo autenticar en 2 firewalls symfony2 diferentes al mismo tiempo?
Cada una de estas áreas está protegida con un firewall por sí mismo. La interfaz WEB está autenticada con un formulario de inicio de sesión y la API con http_basic
.
Ambos firewall funcionan bien, pero cuando la interfaz WEB realiza una llamada AJAX a la interfaz API, el navegador solicita al usuario que vuelva a iniciar sesión, incluso cuando ya inició sesión (mediante el formulario de inicio de sesión). Esto es lo que quiero evitar Me gustaría que ambos firewalls se autenticaran al mismo tiempo para evitar este aviso.
He visto otra pregunta con exactamente el mismo problema. Pero ellos están utilizando http_basic
autenticación en ambos cortafuegos, de modo, la solución propuesta de trabajo nos't en mi caso:
Authenticate multiple symfony2 firewalls with one login form
Mi security.yml
#....
firewalls:
api:
pattern: ^/API
context: primary_auth
stateless: true
http_basic:
realm: "API: Please log in"
web:
pattern: ^/
context: primary_auth
form_login:
check_path: /login_check
login_path: /login
provider: fos_userbundle
logout:
path: /logout
target:/
anonymous: ~
Cité esta respuesta, es un problema muy similar, la diferencia es que estoy usando dos métodos de autenticación diferentes (http básico sin estado y el otro usando cookies) Ya he probado la configuración propuesta pero simplemente funcionó – Xocoatzin
@Xocoatzin, diferente los métodos de autenticación no deberían ser un problema para tener un contexto compartido entre los firewalls. Por ejemplo, estoy haciendo lo mismo con el cortafuegos de formulario de inicio de sesión estándar y otro que se autentica contra el servidor SSO. Tienen diferentes tipos de tokens de autenticación. – Dziamid