summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVivien Kraus <vivien@planete-kraus.eu>2021-10-01 09:37:38 +0200
committerVivien Kraus <vivien@planete-kraus.eu>2021-10-04 23:01:37 +0200
commit424989e6541eb8a7c2c7d80ea9988e2dfa882426 (patch)
tree8203d578f356c2c4bd79f5b74c1d4717b5059db0
parentfeb5baa63974746614ff0b4aae68484b6bff8ec3 (diff)
Serving a client manifest: if there’s no expiration date, use an etag
-rw-r--r--src/scm/webid-oidc/client-manifest.scm10
1 files changed, 7 insertions, 3 deletions
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.</p>"))
(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))))