serializerFormats = $serializer_formats; } /** * {@inheritdoc} */ public static function getSubscribedEvents() { $events[RoutingEvents::ALTER][] = 'onRoutingAlterAddFormats'; return $events; } /** * Adds supported formats to the user authentication HTTP routes. * * @param \Drupal\Core\Routing\RouteBuildEvent $event * The event to process. */ public function onRoutingAlterAddFormats(RouteBuildEvent $event) { $route_names = [ 'user.login_status.http', 'user.login.http', 'user.logout.http', 'user.pass.http', ]; $routes = $event->getRouteCollection(); foreach ($route_names as $route_name) { if ($route = $routes->get($route_name)) { $formats = explode('|', $route->getRequirement('_format')); $formats = array_unique(array_merge($formats, $this->serializerFormats)); $route->setRequirement('_format', implode('|', $formats)); } } } }