Symfony 4 onKernelRequest не вызывается, когда заголовок Content-Type равен application/json
В моем приложении Symfony 4 у меня есть прослушиватель события onKernelRequest:
class TenantListener
{
use ConnectionAwareTrait;
/**
* @var ConnectionWrapper
*/
private $connection;
/**
* @var DatabaseCredentialProviderInterface
*/
private $dataBaseCredentialProvider;
/**
* TenantListener constructor.
* @param ConnectionWrapper $connection
* @param DatabaseCredentialProviderInterface $dataBaseCredentialProvider
*/
public function __construct(ConnectionWrapper $connection, DatabaseCredentialProviderInterface $dataBaseCredentialProvider)
{
$this->connection = $connection;
$this->dataBaseCredentialProvider = $dataBaseCredentialProvider;
}
public function onKernelRequest(GetResponseEvent $event)
{
if (! $event->isMasterRequest() || ! $this->multiTenantEnabled()) {
return;
}
$database = $this->dataBaseCredentialProvider->getDatabase();
$this->connection->forceSwitch($database->getHost(), $database->getName(), $database->getUsername(), $database->getPassword());
}
}
С service.yaml:
App\MultiTenant\Listener\TenantListener:
class: App\MultiTenant\Listener\TenantListener
arguments:
$connection: '@doctrine.dbal.central_connection'
tags:
- { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }
Слушатель работает правильно, когда для Content-Type установлено значение application/vnd.api+json
что касается большинства моих конечных точек. Но есть одна конечная точка, которая должна иметь Content-Type application/json
и для этой конечной точки onKernelRequest
метод не вызывается при отправке заголовка типа контента application/json
, но он вызывается, когда я устанавливаю заголовок te на что-либо еще.
Кто-нибудь знает, что может быть не так?