Symfony: приоритет слушателя в связке - PullRequest
0 голосов
/ 11 марта 2019

У меня есть REST API, созданный с помощью фреймворка Symfony 3.4 (и FOS Rest Bundle). Я использую аутентификацию с ключами API для аутентификации пользователей (https://symfony.com/doc/3.3/security/api_key_authentication.html). Я установил LexikMaintenanceBundle (https://github.com/lexik/LexikMaintenanceBundle), чтобы добавить режим обслуживания в API.

Проблема в том, что аутентификация всегда выполняется сначала, а не проверяется сначала, включен ли режим обслуживания. Как правило, проверка режима обслуживания должна выполняться сначала до аутентификации.

Как изменить приоритет слушателя, созданного в пакете? Или, может быть, есть другое решение, чтобы изменить его.

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 11 марта 2019

Вы можете контролировать порядок выполнения слушателей, используя дополнительный атрибут тега priority. См. документацию . Чем выше число, тем раньше исполняется слушатель, по умолчанию 0.

Вы можете присвоить MaintenanceListener более высокий приоритет (любое положительное значение, например, 10), добавив атрибут priority в LexikMaintenanceBundle/Resources/config/services.xml:

<tag name="kernel.event_listener" event="kernel.request" method="onKernelRequest" priority="10" />

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...