Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Vueltas con las autorizaciones de Symfony

18 de noviembre de 2014

Buenas!

Llevo un buen rato intentado que los usuarios anónimos que llegan a / se les redirijan a /login.

/login he conseguido que sea público, pero no consigo redirigir a los usuarios.

Os pongo mi archivo de configuración:

# app/config/security.yml
security:
    access_denied_url: /login

    providers:
        in_memory:
            memory: ~

    firewalls:
        dev:
            pattern:  ^/(_(profiler|wdt)|css|images|js)/
            security: false

        default:
            anonymous:         ~

        login_firewall:
            pattern:   ^/login$
            anonymous: ~

        secured_area:
            pattern:   ^/
            anonymous: ~
            form_login:
                csrf_provider: form.csrf_provider

    access_control:
        - { path: ^/login, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/, role: ROLE_USER }

Es como si no hiciera caso del access_denied_url, porque el error de acceso no autorizado para / me aparece.

¿Alguna sugerencia?


Respuestas

#1

En realidad no es necesario que definas la opción access_denied_url y tampoco el firewall default. Como el error puede producirse por motivos difíciles de detectar, te aconsejo que mires por ejemplo la seguridad de la aplicación de ejemplo Cupon que hace exactamente lo que tú quieres hacer.

Si instalas la aplicación Cupon en tu ordenador local y pruebas a acceder a cualquier URL privada (por ejemplo /es/usuario/compras) verás que la aplicación te redirige automáticamente a la página de login.

@javiereguiluz

18 noviembre 2014, 20:39