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 :
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;
    }
alors que le constructeur contient :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
public function __construct()
    {
        $this->roles = array();
    }
J'ai essayé de faire un die() dans ce constructeur, il n'est jamais lancé.

Voici ma configuration de 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
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 }
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.

Merci de votre aide.