Bonjour,
J'ai lu plusieurs articles sur l'authentification utilisateur depuis une table de la base de données, que j'ai implémenté, mais j'ai l'impression que la méthode d'authentification de Symfony n'instancie pas mon entité User.
Concrètement, la vérification d'email/mot de passe s'effectue correctement, mais les méthodes associées à l'entité ne fonctionnent pas.
Par exemple, dans l'entité User je dois faire :
alors que le constructeur contient :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public function getRoles() { if ($this->roles === null) { $this->roles = array(); } return $this->roles; }
J'ai essayé de faire un die() dans ce constructeur, il n'est jamais lancé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 public function __construct() { $this->roles = array(); }
Voici ma configuration de security.yml :
Mon entité User contient également l'annotation indiquant son repository, qui implémente UserProviderInterface, mais lui non plus n'est jamais appelé. Les logs indiquent que Symfony utilise le provider par défaut, Symfony\Bridge\Doctrine\Security\User\EntityUserProvider.
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
26
27
28 security: encoders: Medijob\Bundle\MainBundle\Entity\User: sha512 role_hierarchy: ROLE_ADMIN: ROLE_USER ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH] providers: entity: entity: { class: Medijob\Bundle\MainBundle\Entity\User, property: email } firewalls: dev: pattern: ^/(_(profiler|wdt)|css|images|js)/ security: false account: pattern: ^/ anonymous: ~ form_login: check_path: /authentification login_path: /connexion logout: path: /deconnexion access_control: - { path: ^/compte, roles: ROLE_USER }
Merci de votre aide.
Partager