From 424989e6541eb8a7c2c7d80ea9988e2dfa882426 Mon Sep 17 00:00:00 2001 From: Vivien Kraus Date: Fri, 1 Oct 2021 09:37:38 +0200 Subject: Serving a client manifest: if there’s no expiration date, use an etag MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/scm/webid-oidc/client-manifest.scm | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/scm/webid-oidc/client-manifest.scm b/src/scm/webid-oidc/client-manifest.scm index 2a901c2..1d855c1 100644 --- a/src/scm/webid-oidc/client-manifest.scm +++ b/src/scm/webid-oidc/client-manifest.scm @@ -274,6 +274,10 @@ approved.

")) (make-exception-with-message final-message))))) (let ((json-object (stubs:scm->json-string (->json-data mf)))) - (values (build-response #:headers `((content-type application/ld+json) - (expires . ,expiration-date))) - json-object))) + (let ((etag (stubs:hash 'SHA-256 json-object))) + (values (build-response #:headers `((content-type application/ld+json) + (etag . (,etag . #t)) + ,@(if expiration-date + `((expires . ,expiration-date)) + `((cache-control public must-revalidate))))) + json-object)))) -- cgit v1.2.3