Bug - Créez une API REST avec Symfony 3

The user provider must be an instance of AuthTokenUserProvider (Symfony\\Bridge\\Doctrine\\Security\\User\\EntityUserProvider was given)

a marqué ce sujet comme résolu.
Auteur du sujet

Bonjour a tous, j’ai suivi le tutoriel mentionné dans le titr, pour intégrer un Bundle de récupération des données d’une appli existante via l’API REST

Je me retrouve bloqué à l’étape de sécurisation des données avec le message suivant

The user provider must be an instance of AuthTokenUserProvider (Symfony\Bridge\Doctrine\Security\User\EntityUserProvider was given)

L’erreur vient de l’AuthTokenAuthenticator lors de l’authentification (authenticateToken)

1
2
3
4
5
6
7
8
if (!$userProvider instanceof AuthTokenUserProvider) {
            throw new \InvalidArgumentException(
                sprintf(
                    'The user provider must be an instance of AuthTokenUserProvider (%s was given).',
                    get_class($userProvider)
                )
            );
        }

Sauf que je ne vois pas trop comment règler ce problème, j’ai pourtant suivi a la lettre le tuto

Voici les services créés :

`auth_token_user_provider: class: RESTBundle\Security\AuthTokenUserProvider arguments: ["@auth_token_repository", "@user_repository"] public: false

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
auth_token_repository:
    class:   Doctrine\ORM\EntityManager
    factory: ["@doctrine.orm.entity_manager", "getRepository"]
    arguments: ["RESTBundle:AuthToken"]

user_repository:
    class:   Doctrine\ORM\EntityManager
    factory: ["@doctrine.orm.entity_manager", "getRepository"]
    arguments: ["RESTBundle:User"]

auth_token_authenticator:
    class:     RESTBundle\Security\AuthTokenAuthenticator
    arguments: ["@security.http_utils"]
    public:    false`

Merci pour votre aide

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte