From 7736071a84caf1da71bcd9973b4fa06930406a22 Mon Sep 17 00:00:00 2001 From: Thijs Kinkhorst <thijs@kinkhorst.com> Date: Wed, 24 Aug 2022 14:54:59 +0000 Subject: [PATCH] Add ETag and check for modifiedness of metadata --- modules/saml/src/Controller/Metadata.php | 5 +++++ modules/saml/src/Controller/ServiceProvider.php | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/modules/saml/src/Controller/Metadata.php b/modules/saml/src/Controller/Metadata.php index 97f4d8780..ceae302e0 100644 --- a/modules/saml/src/Controller/Metadata.php +++ b/modules/saml/src/Controller/Metadata.php @@ -106,6 +106,11 @@ class Metadata $metaxml = substr($metaxml, 0, $i ? $i + 22 : 0); $response = new Response(); + $response->setEtag(hash('sha256', $metaxml)); + $response->setPublic(); + if ($response->isNotModified($request)) { + return $response; + } $response->headers->set('Content-Type', 'application/samlmetadata+xml'); $response->headers->set('Content-Disposition', 'attachment; filename="idp-metadata.xml"'); $response->setContent($metaxml); diff --git a/modules/saml/src/Controller/ServiceProvider.php b/modules/saml/src/Controller/ServiceProvider.php index b7fd83580..bd5d579fd 100644 --- a/modules/saml/src/Controller/ServiceProvider.php +++ b/modules/saml/src/Controller/ServiceProvider.php @@ -607,6 +607,11 @@ class ServiceProvider $metaxml = substr($metaxml, 0, $i ? $i + 22 : 0); $response = new Response(); + $response->setEtag(hash('sha256', $metaxml)); + $response->setPublic(); + if ($response->isNotModified($request)) { + return $response; + } $response->headers->set('Content-Type', 'application/samlmetadata+xml'); $response->headers->set('Content-Disposition', 'attachment; filename="' . basename($sourceId) . '.xml"'); $response->setContent($metaxml); -- GitLab