Переопределить symfony TokenAuthenticator в тестах phpunit - PullRequest
1 голос
/ 25 апреля 2020

Я создал собственный класс аутентификации токена, расширив класс AbstractGuardAuthenticator, как объяснено здесь . Мое требование состояло в том, чтобы принять jwt, распаковать его и идентифицировать пользователя, проверив его идентификатор в базе данных, которая работает совершенно нормально.

Теперь мне нужно переопределить основные методы его использования в php модульные тесты . Проще говоря, обойти это и установить пользователя по умолчанию. Поэтому я могу тестировать конечные точки API, не передавая пользовательские токены каждый раз, когда выполняю функциональный тест.

То, что я пытался

Я пытался определить отдельный security.yaml в проверить папку и вызвать настроенный класс, используя ее для переопределения, но приложение по-прежнему вызывает класс по умолчанию.

Путь: config / packages / test / security.yaml

security:

  firewalls:

    main:
      anonymous: lazy
      logout: ~

      guard:
        authenticators:
          - Otrium\Infrastructure\Security\TestTokenAuthenticator
        entry_point: Otrium\Infrastructure\Security\TestTokenAuthenticator

      stateless: true

Единственное решение, которое я нашел до сих пор, - это сохранить соответствующий jwt и передавать его в качестве значения заголовка в каждом тесте.

Symfony версия - 5 / Php версия - 7.4

1 Ответ

1 голос
/ 26 апреля 2020

Вам не нужно переопределять Authenticator.

Вы можете найти решение здесь

Я использовал его в своем проекте, и мне не нужно передавать токен в каждом запросе.

...