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
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
8. Formularios Qué vamos a hacer
● Crearemos la pantalla de registro = Ruta + Controlador + Vista
● Crearemos la clase del formulario de registro
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
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
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