Blog


Forzar rutas para utilizar HTTPS con Symfony2

FORZAR RUTAS PARA UTILIZAR HTTPS CON SYMFONY2

16 / 09 / 2013 Symfony

Hay ocasiones en las que necesitamos proteger algunas rutas de nuestras aplicaciones Symfony asegurándonos de que se accede a través del protocolo HTTPS. El componente Routing nos permite hacerlo de la siguiente manera, en la que forzamos usar HTTPS en la ruta contacto:

contacto:
    path: /contacto
    defaults: { _controller: VabadusBundle:Main:contacto }
    schemes: [https]

De esta forma, estamos forzando el protocolo HTTPS para una ruta en concreto, pero el componente Security nos permite hacerlo para un área completa de nuestra aplicación a través del parámetro requires_channel, en la configuración de seguridad.

Por ejemplo, si quisiéramos forzar HTTPS para todas las URL que comiencen con /admin, podríamos hacerlo de la siguiente forma:

access_control:
    - path: ^/admin
      roles: ROLE_ADMIN
      requires_channel: https

En este caso, estaríamos forzando HTTPS para todo el área admin de nuestra aplicación Symfony, para usuarios con ROLE_ADMIN. Pero tendríamos que permitir a los usuarios el acceso anónimo al login para autenticarse, aunque, forzando igualmente el acesso con HTTPS:

access_control:
    - path: ^/login
      roles: IS_AUTHENTICATED_ANONYMOUSLY
      requires_channel: https


ARTÍCULOS RELACIONADOS