From afab34d8ed9050878d209946f68a645d18b91bbc Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Wed, 1 Dec 2021 15:17:12 +0100 Subject: [PATCH] [HttpKernel] fix sending Vary: Accept-Language when appropriate --- .../Component/HttpKernel/EventListener/LocaleListener.php | 1 + .../Component/HttpKernel/EventListener/ResponseListener.php | 3 +++ 2 files changed, 4 insertions(+) diff --git a/src/Symfony/Component/HttpKernel/EventListener/LocaleListener.php b/src/Symfony/Component/HttpKernel/EventListener/LocaleListener.php index 5d77377c6046b..f19e13649e988 100644 --- a/src/Symfony/Component/HttpKernel/EventListener/LocaleListener.php +++ b/src/Symfony/Component/HttpKernel/EventListener/LocaleListener.php @@ -70,6 +70,7 @@ private function setLocale(Request $request) $request->setLocale($locale); } elseif ($this->useAcceptLanguageHeader && $this->enabledLocales && ($preferredLanguage = $request->getPreferredLanguage($this->enabledLocales))) { $request->setLocale($preferredLanguage); + $request->attributes->set('_vary_by_language', true); } } diff --git a/src/Symfony/Component/HttpKernel/EventListener/ResponseListener.php b/src/Symfony/Component/HttpKernel/EventListener/ResponseListener.php index bb51c6dc0dbda..a4090159bb751 100644 --- a/src/Symfony/Component/HttpKernel/EventListener/ResponseListener.php +++ b/src/Symfony/Component/HttpKernel/EventListener/ResponseListener.php @@ -50,6 +50,9 @@ public function onKernelResponse(ResponseEvent $event) if ($this->addContentLanguageHeader && !$response->isInformational() && !$response->isEmpty() && !$response->headers->has('Content-Language')) { $response->headers->set('Content-Language', $event->getRequest()->getLocale()); + } + + if ($event->getRequest()->attributes->get('_vary_by_language')) { $response->setVary('Accept-Language', false); }