diff --git a/modules/saml/src/Controller/Metadata.php b/modules/saml/src/Controller/Metadata.php index 97f4d8780e9c72e9cdefb2f81c22d33e25d6b70e..ceae302e0b03426172cad2a5721ed915d155b9df 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 b7fd835800db67094fdfd230834a590acf14293e..bd5d579fd4673b103b5b128586286ead804b449e 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);