Bonsoir,

J'ouvre ce topic car je me pose pas mal de questions théoriques quant au processus de traitement des formulaires de login.

J'ai crée 2 entités, User et Role, héritant de leurs interfaces respective.

L'étape suivante et de toucher aux fichier security.yml, et là, j'avoue que je m'en sert un peu sans vraiment comprendre le fonctionnement.

Prenons l'exemple d'une identification basée sur table (User et Role):

routing.yml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
login:
    pattern:  /login
    defaults: { _controller: ProjExempleBundle:Security:login }
 
check:
    pattern:  /login_check
security.yml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
security:
    encoders:
        Symfony\Component\Security\Core\User\User:
        algorithm: sha512
        encode-as-base64: true
        iterations: 10
 
      providers:
      main:
        entity: { class:ProjExempleBundle:User, property: login }
 
    firewalls:
      main:
        pattern: /.*
        form_login:
            check_path: /login_check
            login_path: /login
        logout: true
        security: true
        anonymous: true
 
    access_control:
        - { path: /admin.*, role: ROLE_ADMIN }
        - { path: /.*, role: IS_AUTHENTICATED_ANONYMOUSLY }
Je ne vais pas vous afficher le formulaire de login ce ne serait pas très intéressant, mais il faut savoir qu'il pointe vers la route "check".

Une fois que le firewall a récupérer le formulaire, pour traiter le résultat, va t-il utiliser le "encoders" ? Si oui
1] Comment sait-il qu'il soit l'appliquer seulement sur le password (comment identifie t-il se champ du formulaire ? Et de l'entité, grâce à l'interface je suppose ?)

2] Si on a applique un 'salt' au pass avant de l'entrer en base, par exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$user->setSalt(md5(time()));
Comment Symfony2 va pouvoir matcher avec le pass entré en base, ce dernier étant base sur un cryptage en rapport à un instant t ??

Merci à la personne qui saura m'apporter ces précieuses explications !