Pregunta

Quiero establecer access_control para todo, pero no para el patrón /login (y tal vez algunas rutas más).

Entonces configuré la ruta para iniciar sesión primero, con el papel IS_AUTHENTICATED_ANONYMOUSLY. Luego configuré el camino para todo, con el papel IS_AUTHENTICATED_FULLY.

El problema es que el formulario de inicio de sesión ahora se genera dos veces. Veo dos campos de inicio de sesión, dos botones de envío, y así sucesivamente.

Si elimino las reglas access_control, no tengo, y solo configuré en una ruta como /blog/.* Y con el papel: IS_AUTHENTICATED_FULLY, funciona bien, el formulario de inicio de sesión es como debería ser.

Entonces mi configuración de "Necesitas ser autenticado en todas partes, excepto aquí" No funciona.

Esto es lo que intenté hacer cuando el formulario de inicio de sesión se genera dos veces:

access_control:
   - { path: /login, role: IS_AUTHENTICATED_ANONYMOUSLY }
   - { path: /.*, role: IS_AUTHENTICATED_FULLY }

¿Alguien tiene buenos ejemplos sobre cómo configurar tal regla?

¿Fue útil?

Solución

Así que obtuve la respuesta :) Entonces, si alguien tuviera este problema, también debe dejar que _WDT, y se accediera a los se accede de forma anónima :)

 access_control:

       - { path: /_wdt/.*, role: IS_AUTHENTICATED_ANONYMOUSLY }
       - { path: /_profiler/.*, role: IS_AUTHENTICATED_ANONYMOUSLY }
       - { path: /login, role: IS_AUTHENTICATED_ANONYMOUSLY }
       - { path: /.*, role: IS_AUTHENTICATED_FULLY }

Otros consejos

No olvides agregar este firewall:

firewalls:
    dev:
        pattern:  ^/(_(profiler|wdt)|css|images|js)/
        security: false
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top