SlideShare une entreprise Scribd logo
1  sur  31
Télécharger pour lire hors ligne
Tutorial #4
 Formularios y Seguridad.
 Javier López



JORNADAS SYMFONY 2011 1-3 JULIO, CASTELLÓN DESYMFONY.COM
Importante

Algunas partes de este presentación no se pueden
entender bien sin ver el vídeo de su impartición

Puedes ver el vídeo en
http://bit.ly/sf-tutorial4


Puedes descargar el código de partida para la presentación en
https://github.com/desymfony/desymfony/tree/tutorial4


                                                       DESYMFONY.COM
Javier López                  Quién es este tipo




●   Socio fundador de Flai Webnected S.L (www.flai.es)

●   Programador en symfony desde symfony 1.0, allá por 2008

●   Zend Certified Engineer

●   Co-organizador de Desymfony




                                                    DESYMFONY.COM
Formularios



              DESYMFONY.COM
Formularios                    Algunas apuntes




●   Más de dos años de desarrollo

●   Principal razón del retraso de la versión 2


●   Librería escrita desde 0


●   Olvida casi todo lo que conocias de symfony 1.4




                                                      DESYMFONY.COM
Formularios   ¿Qué vamos a hacer?




                                    DESYMFONY.COM
Formularios                 Qué vamos a hacer




●   Crearemos la pantalla de registro = Ruta + Controlador + Vista


●   Crearemos la clase del formulario de registro




                                                      DESYMFONY.COM
Seguridad



            DESYMFONY.COM
Seguridad               Algunas apuntes




    Las 4 palabras mágicas para entender la seguridad:


●   Firewalls (Autenticación)


●   Access Control (Autorización)


●   Providers (Dónde están mi usuarios)


●   Encoders (Cómo se procesan las contraseñas)

                                                     DESYMFONY.COM
Seguridad                 El proceso en imágenes




                                             Access Control
                        Firewall
          /




                                                                      Aplicación
Cliente




                                                                 /




              Autenticación                 Autorización



                                                              DESYMFONY.COM
Seguridad                   Accediendo a una URL no protegida



                                      Anónimos                       No hay reglas
          Soy anónimo
                                     bienvenidos!                       Para /




                                                    Access Control
                          Firewall
            /




                                                                                         Aplicación
Cliente




                                                                                     /




                Autenticación                       Autorización



                                                                              DESYMFONY.COM
Seguridad                  Accediendo a una URL protegida



                                     Anónimos                          Debes ser
          Soy anónimo
                                    bienvenidos!                    usuario registrado




                                                   Access Control
                         Firewall
            /perfil




                                                                                         Aplicación
Cliente




                                     Lo siento
                                     haz login                                    /




               Autenticación                       Autorización



                                                                             DESYMFONY.COM
Seguridad                 Accediendo a una URL protegida sin permisos



           Usuario                 Bienvenido                      Deber ser
          registrado                Javier L.                    administrador




                                                Access Control
                        Firewall
           /admin




                                                                                 Aplicación
Cliente




                                   Lo siento,
                                   no puedes                                 /
                                     pasar




              Autenticación                     Autorización



                                                                       DESYMFONY.COM
security.yml

app/config/security.yml


 security:
     firewalls: {}
     access_control: {}
     providers: {}
     encoders:  {}




                          DESYMFONY.COM
security.yml

 security:
   firewalls:
     secured_area:
       pattern:    ^/
       anonymous:  ~
       form_login:
         login_path:  /login
         check_path:  /check
       logout:
         path:   /logout
         target: /      


Definimos un único firewall para la aplicación.




                                                  DESYMFONY.COM
security.yml

 security:
   firewalls:
     secured_area:
       pattern:    ^/
       anonymous:  ~
       form_login:
         login_path:  /login
         check_path:  /check
       logout:
         path:   /logout
         target: /      


Cobertura de nuestro firewall. Todas las URLs




                                                DESYMFONY.COM
security.yml

 security:
   firewalls:
     secured_area:
       pattern:    ^/
       anonymous:  ~
       form_login:
         login_path:  /login
         check_path:  /check
       logout:
         path:   /logout
         target: /      


Aceptamos usuarios anónimos.




                               DESYMFONY.COM
security.yml

 security:
   firewalls:
     secured_area:
       pattern:    ^/
       anonymous:  ~
       form_login:
         login_path:  /login
         check_path:  /check
       logout:
         path:   /logout
         target: /      


Método de autenticación, formulario. Existen otras opciones.




                                                               DESYMFONY.COM
security.yml

 security:
   firewalls:
     secured_area:
       pattern:    ^/
       anonymous:  ~
       form_login:
         login_path:  /login
         check_path:  /check
       logout:
         path:   /logout
         target: /      


La ruta para acceder al formulario de login




                                              DESYMFONY.COM
security.yml

 security:
   firewalls:
     secured_area:
       pattern:    ^/
       anonymous:  ~
       form_login:
         login_path:  /login
         check_path:  /check
       logout:
         path:   /logout
         target: /      


Ruta para comprobar la autenticación del usuario. El formulario de login se envía a esta
ruta.



                                                                      DESYMFONY.COM
security.yml

 security:
   firewalls:
     secured_area:
       pattern:    ^/
       anonymous:  ~
       form_login:
         login_path:  /login
         check_path:  /check
       logout:
         path:   /logout
         target: /      


Información para “desautenticar” al usuario




                                              DESYMFONY.COM
security.yml

 security:
   firewalls:
    ## codigo anterior

   access_control:
     ­ { path: ^/perfil        , roles: ROLE_USER }      




La URL “/perfil” sólo es accesible al ROLE_USER




                                                   DESYMFONY.COM
security.yml

 security:
   firewalls:
   access_control:     
   providers:
     main:
       entity:
         class: DesymfonyDesymfonyBundleEntityUsuario
         property: email




Nombre de proveedor de usuarios. Podré tener más: memoria, base de datos, xml, ...




                                                                   DESYMFONY.COM
security.yml

 security:
   firewalls:
   access_control:     
   providers:
     main:
       entity:
         class: DesymfonyDesymfonyBundleEntityUsuario
         property: email




Nuestro proveedor es una entidad.




                                                   DESYMFONY.COM
security.yml

 security:
   firewalls:
   access_control:     
   providers:
     main:
       entity:
         class: DesymfonyDesymfonyBundleEntityUsuario
         property: email




Entidad responsable de proveernos de usuarios.
Para poder comportarse como tal deberá implementar UserInterface



                                                             DESYMFONY.COM
security.yml

 security:
   firewalls:
   access_control:     
   providers:
     main:
       entity:
         class: DesymfonyDesymfonyBundleEntityUsuario
         property: email




Propiedad que servirá como nombre de usuario




                                                   DESYMFONY.COM
security.yml

 security:
   firewalls:
   access_control:     
   providers:
   encoders:
     DesymfonyDesymfonyBundleEntityUsuario: sha512  




Podemos definir encoders distintos para cada tipo de usuario.




                                                                DESYMFONY.COM
security.yml

 Para saber más sobre todas las opciones de configuración


 Security Configuration Reference
 http://symfony.com/doc/2.0/reference/configuration/security.html




                                                            DESYMFONY.COM
Seguridad            Qué vamos a hacer




●Crearemos la página de login para que el usuario se pueda
autenticar


●Modificaremos la entidad Usuario para que sea un proveedor
de usuarios válido




                                                  DESYMFONY.COM
Gracias.

@loalf

github.com/loalf

www.loalf.com
                     DESYMFONY.COM

Contenu connexe

En vedette

Taller mysql console_2
Taller mysql console_2Taller mysql console_2
Taller mysql console_2jonathan02591
 
Curso php - capitulo 2
Curso php - capitulo 2Curso php - capitulo 2
Curso php - capitulo 2yanburbano
 
Iniciación PHP 5. Ejercicios
Iniciación PHP 5. EjerciciosIniciación PHP 5. Ejercicios
Iniciación PHP 5. EjerciciosRightster
 
Iniciación PHP 5. Ejemplos
Iniciación PHP 5. EjemplosIniciación PHP 5. Ejemplos
Iniciación PHP 5. EjemplosRightster
 
Iniciación PHP 5. Arquitectura cliente/servidor
Iniciación PHP 5. Arquitectura cliente/servidorIniciación PHP 5. Arquitectura cliente/servidor
Iniciación PHP 5. Arquitectura cliente/servidorRightster
 
Community manager-espanol
Community manager-espanolCommunity manager-espanol
Community manager-espanolUDECI
 
Beyond Virtualisation
Beyond VirtualisationBeyond Virtualisation
Beyond VirtualisationRightster
 
Ejercicios resueltos de programacion
Ejercicios resueltos de programacionEjercicios resueltos de programacion
Ejercicios resueltos de programacionJaime amambal
 
Mysql3
Mysql3Mysql3
Mysql3polar
 
New Symfony Tips & Tricks (SymfonyCon Paris 2015)
New Symfony Tips & Tricks (SymfonyCon Paris 2015)New Symfony Tips & Tricks (SymfonyCon Paris 2015)
New Symfony Tips & Tricks (SymfonyCon Paris 2015)Javier Eguiluz
 
PHP Avanzado: Características avanzadas de PHP
PHP Avanzado: Características avanzadas de PHPPHP Avanzado: Características avanzadas de PHP
PHP Avanzado: Características avanzadas de PHPRightster
 
Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejerciciostestgrupocomex
 

En vedette (19)

Taller mysql console_2
Taller mysql console_2Taller mysql console_2
Taller mysql console_2
 
Curso php - capitulo 2
Curso php - capitulo 2Curso php - capitulo 2
Curso php - capitulo 2
 
Ejemplos en php
Ejemplos en phpEjemplos en php
Ejemplos en php
 
Desarrollo de sitios web con php y my sql
Desarrollo de sitios web con php y my sqlDesarrollo de sitios web con php y my sql
Desarrollo de sitios web con php y my sql
 
Ejercicios preliminares en php
Ejercicios preliminares en phpEjercicios preliminares en php
Ejercicios preliminares en php
 
Bbdd para ejercicios php
Bbdd para ejercicios phpBbdd para ejercicios php
Bbdd para ejercicios php
 
Iniciación PHP 5. Ejercicios
Iniciación PHP 5. EjerciciosIniciación PHP 5. Ejercicios
Iniciación PHP 5. Ejercicios
 
Iniciación PHP 5. Ejemplos
Iniciación PHP 5. EjemplosIniciación PHP 5. Ejemplos
Iniciación PHP 5. Ejemplos
 
Iniciación PHP 5. Arquitectura cliente/servidor
Iniciación PHP 5. Arquitectura cliente/servidorIniciación PHP 5. Arquitectura cliente/servidor
Iniciación PHP 5. Arquitectura cliente/servidor
 
Community manager-espanol
Community manager-espanolCommunity manager-espanol
Community manager-espanol
 
Beyond Virtualisation
Beyond VirtualisationBeyond Virtualisation
Beyond Virtualisation
 
Ejercicios resueltos de programacion
Ejercicios resueltos de programacionEjercicios resueltos de programacion
Ejercicios resueltos de programacion
 
Mysql3
Mysql3Mysql3
Mysql3
 
ejercicios php rfo
ejercicios php rfoejercicios php rfo
ejercicios php rfo
 
New Symfony Tips & Tricks (SymfonyCon Paris 2015)
New Symfony Tips & Tricks (SymfonyCon Paris 2015)New Symfony Tips & Tricks (SymfonyCon Paris 2015)
New Symfony Tips & Tricks (SymfonyCon Paris 2015)
 
PHP Avanzado: Características avanzadas de PHP
PHP Avanzado: Características avanzadas de PHPPHP Avanzado: Características avanzadas de PHP
PHP Avanzado: Características avanzadas de PHP
 
Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejercicios
 
Curso Php
Curso PhpCurso Php
Curso Php
 
Php desde cero
Php desde ceroPhp desde cero
Php desde cero
 

Similaire à deSymfony 2011 - Tutorial #4: Formularios y seguridad

Clase 13 seguridad
Clase 13   seguridad Clase 13   seguridad
Clase 13 seguridad hydras_cs
 
Usodeteamviewer
UsodeteamviewerUsodeteamviewer
UsodeteamviewerMaji Ortiz
 
Memorias 3era gug cali colombia
Memorias 3era gug cali colombiaMemorias 3era gug cali colombia
Memorias 3era gug cali colombiagoscar
 
Seguridad en dispositivos móviles
Seguridad en dispositivos móvilesSeguridad en dispositivos móviles
Seguridad en dispositivos móvilesChema Alonso
 
Curso basicoseguridadweb slideshare6
Curso basicoseguridadweb slideshare6Curso basicoseguridadweb slideshare6
Curso basicoseguridadweb slideshare6tantascosasquenose
 
Qué es eso de OAuth y como se implementa en Symfony2 (y otros)
Qué es eso de OAuth y como se implementa en Symfony2 (y otros)Qué es eso de OAuth y como se implementa en Symfony2 (y otros)
Qué es eso de OAuth y como se implementa en Symfony2 (y otros)Miguel Ángel Sánchez Chordi
 
Teamviewer documentación
Teamviewer documentación Teamviewer documentación
Teamviewer documentación David
 
Prácticas para aumentar su nivel de seguridad en la Nube AWS
Prácticas para aumentar su nivel de seguridad en la Nube AWSPrácticas para aumentar su nivel de seguridad en la Nube AWS
Prácticas para aumentar su nivel de seguridad en la Nube AWSAmazon Web Services LATAM
 

Similaire à deSymfony 2011 - Tutorial #4: Formularios y seguridad (15)

Clase 13 seguridad
Clase 13   seguridad Clase 13   seguridad
Clase 13 seguridad
 
Ingenia en #XIIIJORNADASCCNCERT: El mito de la tecnología
Ingenia en #XIIIJORNADASCCNCERT: El mito de la tecnologíaIngenia en #XIIIJORNADASCCNCERT: El mito de la tecnología
Ingenia en #XIIIJORNADASCCNCERT: El mito de la tecnología
 
Backend (sf2Vigo)
Backend (sf2Vigo)Backend (sf2Vigo)
Backend (sf2Vigo)
 
SupRemo.pdf
SupRemo.pdfSupRemo.pdf
SupRemo.pdf
 
Logmein presentación
Logmein presentaciónLogmein presentación
Logmein presentación
 
Usodeteamviewer
UsodeteamviewerUsodeteamviewer
Usodeteamviewer
 
Memorias 3era gug cali colombia
Memorias 3era gug cali colombiaMemorias 3era gug cali colombia
Memorias 3era gug cali colombia
 
Seguridad en dispositivos móviles
Seguridad en dispositivos móvilesSeguridad en dispositivos móviles
Seguridad en dispositivos móviles
 
Curso basicoseguridadweb slideshare6
Curso basicoseguridadweb slideshare6Curso basicoseguridadweb slideshare6
Curso basicoseguridadweb slideshare6
 
Qué es eso de OAuth y como se implementa en Symfony2 (y otros)
Qué es eso de OAuth y como se implementa en Symfony2 (y otros)Qué es eso de OAuth y como se implementa en Symfony2 (y otros)
Qué es eso de OAuth y como se implementa en Symfony2 (y otros)
 
Teamviewer documentación
Teamviewer documentación Teamviewer documentación
Teamviewer documentación
 
Uso de Teamviewer
Uso de TeamviewerUso de Teamviewer
Uso de Teamviewer
 
Prácticas para aumentar su nivel de seguridad en la Nube AWS
Prácticas para aumentar su nivel de seguridad en la Nube AWSPrácticas para aumentar su nivel de seguridad en la Nube AWS
Prácticas para aumentar su nivel de seguridad en la Nube AWS
 
30.gam introduction sp
30.gam introduction sp30.gam introduction sp
30.gam introduction sp
 
Logmein presentación
Logmein presentaciónLogmein presentación
Logmein presentación
 

Plus de Rightster

PHP Avanzado: Patrones de diseño
PHP Avanzado: Patrones de diseñoPHP Avanzado: Patrones de diseño
PHP Avanzado: Patrones de diseñoRightster
 
PHP Avanzado: PHP, XML y Servicios Web
PHP Avanzado: PHP, XML y Servicios WebPHP Avanzado: PHP, XML y Servicios Web
PHP Avanzado: PHP, XML y Servicios WebRightster
 
PHP Avanzado: Seguridad Web
PHP Avanzado: Seguridad WebPHP Avanzado: Seguridad Web
PHP Avanzado: Seguridad WebRightster
 
Iniciación PHP 5. PHP y MySQL
Iniciación PHP 5. PHP y MySQLIniciación PHP 5. PHP y MySQL
Iniciación PHP 5. PHP y MySQLRightster
 
Iniciación PHP 5. Programación Orientada a Objetos
Iniciación PHP 5. Programación Orientada a ObjetosIniciación PHP 5. Programación Orientada a Objetos
Iniciación PHP 5. Programación Orientada a ObjetosRightster
 
Iniciación PHP 5. Programación Web
Iniciación PHP 5. Programación WebIniciación PHP 5. Programación Web
Iniciación PHP 5. Programación WebRightster
 
Iniciación PHP 5. Introducción
Iniciación PHP 5. IntroducciónIniciación PHP 5. Introducción
Iniciación PHP 5. IntroducciónRightster
 

Plus de Rightster (7)

PHP Avanzado: Patrones de diseño
PHP Avanzado: Patrones de diseñoPHP Avanzado: Patrones de diseño
PHP Avanzado: Patrones de diseño
 
PHP Avanzado: PHP, XML y Servicios Web
PHP Avanzado: PHP, XML y Servicios WebPHP Avanzado: PHP, XML y Servicios Web
PHP Avanzado: PHP, XML y Servicios Web
 
PHP Avanzado: Seguridad Web
PHP Avanzado: Seguridad WebPHP Avanzado: Seguridad Web
PHP Avanzado: Seguridad Web
 
Iniciación PHP 5. PHP y MySQL
Iniciación PHP 5. PHP y MySQLIniciación PHP 5. PHP y MySQL
Iniciación PHP 5. PHP y MySQL
 
Iniciación PHP 5. Programación Orientada a Objetos
Iniciación PHP 5. Programación Orientada a ObjetosIniciación PHP 5. Programación Orientada a Objetos
Iniciación PHP 5. Programación Orientada a Objetos
 
Iniciación PHP 5. Programación Web
Iniciación PHP 5. Programación WebIniciación PHP 5. Programación Web
Iniciación PHP 5. Programación Web
 
Iniciación PHP 5. Introducción
Iniciación PHP 5. IntroducciónIniciación PHP 5. Introducción
Iniciación PHP 5. Introducción
 

Dernier

La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesEdomar AR
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 

Dernier (20)

La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, Aplicaciones
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 

deSymfony 2011 - Tutorial #4: Formularios y seguridad

  • 1. Tutorial #4 Formularios y Seguridad. Javier López JORNADAS SYMFONY 2011 1-3 JULIO, CASTELLÓN DESYMFONY.COM
  • 2.
  • 3. Importante Algunas partes de este presentación no se pueden entender bien sin ver el vídeo de su impartición Puedes ver el vídeo en http://bit.ly/sf-tutorial4 Puedes descargar el código de partida para la presentación en https://github.com/desymfony/desymfony/tree/tutorial4 DESYMFONY.COM
  • 4. Javier López Quién es este tipo ● Socio fundador de Flai Webnected S.L (www.flai.es) ● Programador en symfony desde symfony 1.0, allá por 2008 ● Zend Certified Engineer ● Co-organizador de Desymfony DESYMFONY.COM
  • 5. Formularios DESYMFONY.COM
  • 6. Formularios Algunas apuntes ● Más de dos años de desarrollo ● Principal razón del retraso de la versión 2 ● Librería escrita desde 0 ● Olvida casi todo lo que conocias de symfony 1.4 DESYMFONY.COM
  • 7. Formularios ¿Qué vamos a hacer? DESYMFONY.COM
  • 8. Formularios Qué vamos a hacer ● Crearemos la pantalla de registro = Ruta + Controlador + Vista ● Crearemos la clase del formulario de registro DESYMFONY.COM
  • 9. Seguridad DESYMFONY.COM
  • 10. Seguridad Algunas apuntes Las 4 palabras mágicas para entender la seguridad: ● Firewalls (Autenticación) ● Access Control (Autorización) ● Providers (Dónde están mi usuarios) ● Encoders (Cómo se procesan las contraseñas) DESYMFONY.COM
  • 11. Seguridad El proceso en imágenes Access Control Firewall / Aplicación Cliente / Autenticación Autorización DESYMFONY.COM
  • 12. Seguridad Accediendo a una URL no protegida Anónimos No hay reglas Soy anónimo bienvenidos! Para / Access Control Firewall / Aplicación Cliente / Autenticación Autorización DESYMFONY.COM
  • 13. Seguridad Accediendo a una URL protegida Anónimos Debes ser Soy anónimo bienvenidos! usuario registrado Access Control Firewall /perfil Aplicación Cliente Lo siento haz login / Autenticación Autorización DESYMFONY.COM
  • 14. Seguridad Accediendo a una URL protegida sin permisos Usuario Bienvenido Deber ser registrado Javier L. administrador Access Control Firewall /admin Aplicación Cliente Lo siento, no puedes / pasar Autenticación Autorización DESYMFONY.COM
  • 15. security.yml app/config/security.yml security:     firewalls: {}     access_control: {}     providers: {}     encoders:  {} DESYMFONY.COM
  • 16. security.yml security:   firewalls:     secured_area:       pattern:    ^/       anonymous:  ~       form_login:         login_path:  /login         check_path:  /check       logout:         path:   /logout         target: /       Definimos un único firewall para la aplicación. DESYMFONY.COM
  • 17. security.yml security:   firewalls:     secured_area:       pattern:    ^/       anonymous:  ~       form_login:         login_path:  /login         check_path:  /check       logout:         path:   /logout         target: /       Cobertura de nuestro firewall. Todas las URLs DESYMFONY.COM
  • 18. security.yml security:   firewalls:     secured_area:       pattern:    ^/       anonymous:  ~       form_login:         login_path:  /login         check_path:  /check       logout:         path:   /logout         target: /       Aceptamos usuarios anónimos. DESYMFONY.COM
  • 19. security.yml security:   firewalls:     secured_area:       pattern:    ^/       anonymous:  ~       form_login:         login_path:  /login         check_path:  /check       logout:         path:   /logout         target: /       Método de autenticación, formulario. Existen otras opciones. DESYMFONY.COM
  • 20. security.yml security:   firewalls:     secured_area:       pattern:    ^/       anonymous:  ~       form_login:         login_path:  /login         check_path:  /check       logout:         path:   /logout         target: /       La ruta para acceder al formulario de login DESYMFONY.COM
  • 21. security.yml security:   firewalls:     secured_area:       pattern:    ^/       anonymous:  ~       form_login:         login_path:  /login         check_path:  /check       logout:         path:   /logout         target: /       Ruta para comprobar la autenticación del usuario. El formulario de login se envía a esta ruta. DESYMFONY.COM
  • 22. security.yml security:   firewalls:     secured_area:       pattern:    ^/       anonymous:  ~       form_login:         login_path:  /login         check_path:  /check       logout:         path:   /logout         target: /       Información para “desautenticar” al usuario DESYMFONY.COM
  • 23. security.yml security:   firewalls:    ## codigo anterior   access_control:     ­ { path: ^/perfil        , roles: ROLE_USER }       La URL “/perfil” sólo es accesible al ROLE_USER DESYMFONY.COM
  • 24. security.yml security:   firewalls:   access_control:        providers:     main:       entity:         class: DesymfonyDesymfonyBundleEntityUsuario         property: email Nombre de proveedor de usuarios. Podré tener más: memoria, base de datos, xml, ... DESYMFONY.COM
  • 25. security.yml security:   firewalls:   access_control:        providers:     main:       entity:         class: DesymfonyDesymfonyBundleEntityUsuario         property: email Nuestro proveedor es una entidad. DESYMFONY.COM
  • 26. security.yml security:   firewalls:   access_control:        providers:     main:       entity:         class: DesymfonyDesymfonyBundleEntityUsuario         property: email Entidad responsable de proveernos de usuarios. Para poder comportarse como tal deberá implementar UserInterface DESYMFONY.COM
  • 27. security.yml security:   firewalls:   access_control:        providers:     main:       entity:         class: DesymfonyDesymfonyBundleEntityUsuario         property: email Propiedad que servirá como nombre de usuario DESYMFONY.COM
  • 28. security.yml security:   firewalls:   access_control:        providers:   encoders:     DesymfonyDesymfonyBundleEntityUsuario: sha512   Podemos definir encoders distintos para cada tipo de usuario. DESYMFONY.COM
  • 29. security.yml Para saber más sobre todas las opciones de configuración Security Configuration Reference http://symfony.com/doc/2.0/reference/configuration/security.html DESYMFONY.COM
  • 30. Seguridad Qué vamos a hacer ●Crearemos la página de login para que el usuario se pueda autenticar ●Modificaremos la entidad Usuario para que sea un proveedor de usuarios válido DESYMFONY.COM