diff --git a/www/saml2/idp/metadata.php b/www/saml2/idp/metadata.php index 93bc28b51b46435ba226035ccf7423e6e78e3d87..4315778bf3a92edcbb8b0e7827ceb00f582a25c9 100644 --- a/www/saml2/idp/metadata.php +++ b/www/saml2/idp/metadata.php @@ -242,9 +242,15 @@ try { $t->data['metadataflat'] = htmlspecialchars($metaflat); $t->show(); } else { + $etag = '"' . hash('sha256', $metaxml) . '"'; + if (isset($_SERVER['HTTP_IF_NONE_MATCH'])) { + if ($_SERVER['HTTP_IF_NONE_MATCH'] === $etag) { + header("HTTP/1.1 304 Not Modified"); + exit(0); + } + } header('Content-Type: application/samlmetadata+xml'); - header('ETag: "' . hash('sha256', $metaxml) . '"'); - + header('ETag: ' . $etag); echo $metaxml; exit(0); }