Autenticación personalizada que no necesita UserProvider

Busqué una solución en la web para mi configuración, pero no puedo encontrar algo que satisfaga mis necesidades. Hasta ahora, he estado trabajando en esto durante 3 días completos, y no puedo hacer que funcione correctamente, estoy seguro de que hay varias cosas que no entendí.

Estoy desarrollando mi aplicación symfony en la rama 2.1.

Para hacer esto corto. Tengo un servicio web que quiero usar para la autenticación.

Este es el flujo que quiero implementar:

Usuario envía credencialesEstas credenciales (nombre de usuario y contraseña necesarias) se envían a mi servicio webSi el nombre de usuario / contraseña son correctos, el servicio web proporciona una matriz con Nombre de usuario, Funciones y algunas otras cosas, pero la contraseña. (Si las credenciales no son correctas, se devolverá una matriz con un campo)Tan pronto como el servicio web proporcione la matriz "grande", quiero que el usuario sea considerado como autenticado.En función de los roles devueltos, quiero que el componente de seguridad de Symfony otorgue la autorización correspondiente al usuario.Me gustaría evitar hacer una llamada al servicio web para cada página que se navega.

No sé si es posible hacer esto usando Symfony, seguro que este flujo de trabajo no parece ser más seguro, pero no puedo ver otra forma de usar este servicio web.

Para finalizar, no necesito tener un UserProvider ya que mi autenticación se realiza en el servicio remoto. Pero al parecer, los componentes de Symfony requieren un proveedor de usuario (no importa su tipo).

Os doy las gracias de antemano

Edición: para hacerlo más simple, ¿es posible pasar algo más que la variable $ username en la función loadUserByUsername () en la clase UserProvider (que implementa UserProviderInterface)? Necesito que el usuario pase, además de su nombre de usuario, para recuperar el objeto de usuario.

Respuestas a la pregunta(1)

Su respuesta a la pregunta