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