¿Cómo funciona la ruta check_path de inicio de sesión sin controlador / acción predeterminados?

Estoy trabajando en el proyecto Symfony 2.3 que tiene el siguiente código de enrutamiento

just2_frontend_logincheck: pattern: /login_check 

No tiene

 defaults:{ _controller: testBundle:User:login } 

Pero está funcionando. Pero no sé cómo funciona la ruta. ¿Es posible? Por favor, infórmenme sobre el enrutamiento.

El cortafuegos utiliza la ruta / ruta check_path para atrapar las solicitudes de inicio de sesión.

La acción de esta ruta nunca es realmente accedida. Es la ruta / url que su mensaje de inicio de sesión publica y la solicitud debe ser procesada por el servicio del proveedor de su firewall.

Si la check_path ruta check_path se está ejecutando, hay algo mal con el firewall (el firewall no procesa la solicitud).

Como puede ver aquí, la ruta de verificación de FOSUserBundle se enruta a SecurityController::checkAction y solo arroja una RuntimeException .

La configuración de check_path se puede encontrar en app/config/security.yml en security.firewalls..form_login.check_path .

Puede ser un patrón como /login_check o, como en su caso, un nombre de ruta, es decir, just2_frontend_logincheck pero no hay una acción subyacente.

 security: providers: your_provider_name: your_provider_service # authentication provider # ... firewalls: # Required your_firewall_name: # ... provider: your_provider_name form_login: check_path: /login_check # submit the login form here # in your case a route name: # just2_frontend_logincheck 

Bajo el capó, symfony llama al método authenticate() del servicio your_provider_service para verificar las credenciales proporcionadas.

Puede encontrar la clase utilizada como proveedor-servicio utilizando:

 app/console debug:container --show-private your_provider_service