IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

[Symfony 4.3] The service "security.authentication.provider.guard.test" has a dependency on a non-existent se


Sujet :

Symfony PHP

  1. #1
    Membre chevronné

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 576
    Points : 1 989
    Points
    1 989
    Par défaut [Symfony 4.3] The service "security.authentication.provider.guard.test" has a dependency on a non-existent se
    Bonjour à tous,

    Pourriez vous m'aider s'il vous plaît?

    Pour bypass un firewall avec oauth pour les tests, je veux créer un autre firewall que j'appellerais durant les tests mais il ne trouve pas mon authenticator je pense que c'est un problème d'autoloading.
    Mon security:
    Code yaml : 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
    29
    30
    31
    security:
      providers:
        app_user_provider:
          id: App\Security\UserProvider
     
      firewalls:
        test:
          host: ^127\.0\.0\.1+$
          pattern: ^/api
          stateless: true
          guard:
            authenticators:
              - App\Tests\FakeAuthenticator
        dev:
          pattern: ^/(_(profiler|wdt)|css|images|js)/
          security: false
        secured_area:
          pattern: ^/api
          stateless: true
          simple_preauth:
            authenticator: jwt_auth.jwt_authenticator
        static_area:
          pattern: ^/static
          stateless: true
          simple_preauth:
            authenticator: custom_auth
     
      # Easy way to control access for large sections of your site
      # Note: Only the *first* access control that matches will be used
      access_control:
        - { path: ^/api, roles: ROLE_USER }

    Mo composer.json je pense que le soucis vient de là

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
      },
        "autoload": {
            "psr-4": {
                "App\\": "src/"
            }
        },
        "autoload-dev": {
            "psr-4": {
                "App\\Tests\\": "tests/",
                "Context\\": "tests/api/bootstrap/"
            }
        },
    mon service_test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # This file is the entry point to configure your own services.
    # Files in the packages/ subdirectory configure your dependencies.
     
    # Put parameters here that don't need to change on each machine where the app is deployed
    # https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
     
    services:
     
        App\Tests\UserProvider:
            arguments: ['@doctrine.orm.default_entity_manager']
    Comment puis je faire? merci

  2. #2
    Membre chevronné

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 576
    Points : 1 989
    Points
    1 989
    Par défaut
    Solution:

    Utiliser un firewall de test avec en pattern un paramètre venant du fichier d'environnement.

    .env.test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    # disable SECURITY_TEST_PATTERN='  '
    SECURITY_TEST_PATTERN='^/api'
    security.yml
    Code yaml : 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
      providers:
        app_user_provider:
          id: App\Security\UserProvider
     
      firewalls:
        test:
          pattern: '%env(SECURITY_TEST_PATTERN)%'
          stateless: true
          guard:
            authenticators:
              - App\Security\FakeAuthenticator
        dev:
          pattern: ^/(_(profiler|wdt)|css|images|js)/
          security: false
        secured_area:
          pattern: ^/api
          stateless: true
          simple_preauth:
            authenticator: jwt_auth.jwt_authenticator
        static_area:
          pattern: ^/static
          stateless: true
          simple_preauth:
            authenticator: custom_auth

    Il suffit ensuite de remplacer le fichier d'environnement pas celui de test lors de la ci par exemple, en local juste indiquer dans le env qu'on est en test

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Surcharge de l'opérateur / pour les entiers très grands
    Par marbouchi dans le forum Débuter
    Réponses: 5
    Dernier message: 04/05/2009, 21h28
  2. Strategies pour les tests unitaires
    Par xxiemeciel dans le forum Test
    Réponses: 6
    Dernier message: 17/04/2008, 11h59
  3. [JMeter] Problème avec la boucle infinie pour les tests
    Par zegreg dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 05/10/2005, 11h41
  4. Méthodologie pour les tests
    Par Maitre B dans le forum Test
    Réponses: 7
    Dernier message: 10/03/2005, 17h57
  5. [Stratégie] Ant pour les tests en Java ?
    Par franckR dans le forum Tests et Performance
    Réponses: 5
    Dernier message: 08/03/2004, 09h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo