diff options
author | Vivien Kraus <vivien@planete-kraus.eu> | 2021-10-12 00:15:46 +0200 |
---|---|---|
committer | Vivien Kraus <vivien@planete-kraus.eu> | 2021-10-12 00:19:36 +0200 |
commit | 5eae6db86b483413af605dc1fa8ff6fb1daa1dbb (patch) | |
tree | 50c3034372a74677b564e58599d07815c0b29cba | |
parent | c945e27465532d768cc6012c8737f4c74b59fd9e (diff) |
caching: there is a precise list of headers that belong to the updated resource
The 304 Not Modified response is expected to set exactly the
caching-related headers, but not any other.
-rw-r--r-- | po/disfluid.pot | 28 | ||||
-rw-r--r-- | po/fr.po | 28 | ||||
-rw-r--r-- | src/scm/webid-oidc/cache.scm | 22 | ||||
-rw-r--r-- | src/scm/webid-oidc/resource-server.scm | 9 |
4 files changed, 48 insertions, 39 deletions
diff --git a/po/disfluid.pot b/po/disfluid.pot index 1c36a1d..edce593 100644 --- a/po/disfluid.pot +++ b/po/disfluid.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: disfluid SNAPSHOT\n" "Report-Msgid-Bugs-To: vivien@planete-kraus.eu\n" -"POT-Creation-Date: 2021-10-11 16:45+0200\n" +"POT-Creation-Date: 2021-10-12 00:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -345,7 +345,7 @@ msgid "The application you are trying to authorize behaved unexpectedly." msgstr "" #: src/scm/webid-oidc/authorization-page-unsafe.scm:126 -#: src/scm/webid-oidc/resource-server.scm:291 +#: src/scm/webid-oidc/resource-server.scm:298 msgid "reason-phrase|Found" msgstr "" @@ -380,7 +380,7 @@ msgstr "" msgid "Cache miss for ~a: ~s~%" msgstr "" -#: src/scm/webid-oidc/cache.scm:261 +#: src/scm/webid-oidc/cache.scm:263 #, scheme-format msgid "Cache entry for ~a varies.\n" msgstr "" @@ -1027,7 +1027,7 @@ msgid "The port should be a number between 0 and 65535.\n" msgstr "" #: src/scm/webid-oidc/hello-world.scm:159 -#: src/scm/webid-oidc/resource-server.scm:312 +#: src/scm/webid-oidc/resource-server.scm:319 msgid "reason-phrase|Unauthorized" msgstr "" @@ -1040,7 +1040,7 @@ msgid "<p>This page requires authentication with Solid.</p>" msgstr "" #: src/scm/webid-oidc/hello-world.scm:179 -#: src/scm/webid-oidc/resource-server.scm:320 +#: src/scm/webid-oidc/resource-server.scm:327 msgid "reason-phrase|Method Not Allowed" msgstr "" @@ -2096,42 +2096,42 @@ msgid "~a: authentication failure\n" msgstr "" #: src/scm/webid-oidc/resource-server.scm:158 -#: src/scm/webid-oidc/resource-server.scm:343 +#: src/scm/webid-oidc/resource-server.scm:350 msgid "reason-phrase|Precondition Failed" msgstr "" -#: src/scm/webid-oidc/resource-server.scm:188 +#: src/scm/webid-oidc/resource-server.scm:195 msgid "The owner is not defined." msgstr "" -#: src/scm/webid-oidc/resource-server.scm:257 +#: src/scm/webid-oidc/resource-server.scm:264 msgid "reason-phrase|Created" msgstr "" -#: src/scm/webid-oidc/resource-server.scm:280 +#: src/scm/webid-oidc/resource-server.scm:287 #, scheme-format msgid "~a: ignoring a group that cannot be fetched: ~a\n" msgstr "" -#: src/scm/webid-oidc/resource-server.scm:284 +#: src/scm/webid-oidc/resource-server.scm:291 #, scheme-format msgid "~a: ignoring a group that cannot be fetched\n" msgstr "" -#: src/scm/webid-oidc/resource-server.scm:308 +#: src/scm/webid-oidc/resource-server.scm:315 #: src/scm/webid-oidc/token-endpoint.scm:104 msgid "reason-phrase|Forbidden" msgstr "" -#: src/scm/webid-oidc/resource-server.scm:329 +#: src/scm/webid-oidc/resource-server.scm:336 msgid "reason-phrase|Conflict" msgstr "" -#: src/scm/webid-oidc/resource-server.scm:336 +#: src/scm/webid-oidc/resource-server.scm:343 msgid "reason-phrase|Unsupported Media Type" msgstr "" -#: src/scm/webid-oidc/resource-server.scm:350 +#: src/scm/webid-oidc/resource-server.scm:357 msgid "reason-phrase|Not Acceptable" msgstr "" @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: webid-oidc 0.0.0\n" "Report-Msgid-Bugs-To: vivien@planete-kraus.eu\n" -"POT-Creation-Date: 2021-10-11 16:45+0200\n" +"POT-Creation-Date: 2021-10-12 00:18+0200\n" "PO-Revision-Date: 2021-10-11 16:45+0200\n" "Last-Translator: Vivien Kraus <vivien@planete-kraus.eu>\n" "Language-Team: French <vivien@planete-kraus.eu>\n" @@ -377,7 +377,7 @@ msgstr "" "L’application que vous essayez d’autoriser se comporte de façon inattendue." #: src/scm/webid-oidc/authorization-page-unsafe.scm:126 -#: src/scm/webid-oidc/resource-server.scm:291 +#: src/scm/webid-oidc/resource-server.scm:298 msgid "reason-phrase|Found" msgstr "Trouvé" @@ -414,7 +414,7 @@ msgstr "En nettoyant le cache : ~a : ~a~%" msgid "Cache miss for ~a: ~s~%" msgstr "Échec de cache pour ~a : ~s~%" -#: src/scm/webid-oidc/cache.scm:261 +#: src/scm/webid-oidc/cache.scm:263 #, scheme-format msgid "Cache entry for ~a varies.\n" msgstr "L’entrée de cache pour ~a varie.\n" @@ -1130,7 +1130,7 @@ msgid "The port should be a number between 0 and 65535.\n" msgstr "Le port doit être un nombre entre 0 et 65535.\n" #: src/scm/webid-oidc/hello-world.scm:159 -#: src/scm/webid-oidc/resource-server.scm:312 +#: src/scm/webid-oidc/resource-server.scm:319 msgid "reason-phrase|Unauthorized" msgstr "Non Autorisé" @@ -1143,7 +1143,7 @@ msgid "<p>This page requires authentication with Solid.</p>" msgstr "<p>Cette page requiert une authentification avec Solid.</p>" #: src/scm/webid-oidc/hello-world.scm:179 -#: src/scm/webid-oidc/resource-server.scm:320 +#: src/scm/webid-oidc/resource-server.scm:327 msgid "reason-phrase|Method Not Allowed" msgstr "Méthode Non Autorisée" @@ -2477,42 +2477,42 @@ msgid "~a: authentication failure\n" msgstr "~a : échec d’authentification\n" #: src/scm/webid-oidc/resource-server.scm:158 -#: src/scm/webid-oidc/resource-server.scm:343 +#: src/scm/webid-oidc/resource-server.scm:350 msgid "reason-phrase|Precondition Failed" msgstr "Échec de Précondition" -#: src/scm/webid-oidc/resource-server.scm:188 +#: src/scm/webid-oidc/resource-server.scm:195 msgid "The owner is not defined." msgstr "Le propriétaire n’est pas défini." -#: src/scm/webid-oidc/resource-server.scm:257 +#: src/scm/webid-oidc/resource-server.scm:264 msgid "reason-phrase|Created" msgstr "Créé" -#: src/scm/webid-oidc/resource-server.scm:280 +#: src/scm/webid-oidc/resource-server.scm:287 #, scheme-format msgid "~a: ignoring a group that cannot be fetched: ~a\n" msgstr "~a : j’ignore un groupe qui n’a pas pu être téléchargé : ~a\n" -#: src/scm/webid-oidc/resource-server.scm:284 +#: src/scm/webid-oidc/resource-server.scm:291 #, scheme-format msgid "~a: ignoring a group that cannot be fetched\n" msgstr "~a : j’ignore un groupe qui ne peut pas être téléchargé\n" -#: src/scm/webid-oidc/resource-server.scm:308 +#: src/scm/webid-oidc/resource-server.scm:315 #: src/scm/webid-oidc/token-endpoint.scm:104 msgid "reason-phrase|Forbidden" msgstr "Interdit" -#: src/scm/webid-oidc/resource-server.scm:329 +#: src/scm/webid-oidc/resource-server.scm:336 msgid "reason-phrase|Conflict" msgstr "Conflit" -#: src/scm/webid-oidc/resource-server.scm:336 +#: src/scm/webid-oidc/resource-server.scm:343 msgid "reason-phrase|Unsupported Media Type" msgstr "Type de Média Non Supporté" -#: src/scm/webid-oidc/resource-server.scm:350 +#: src/scm/webid-oidc/resource-server.scm:357 msgid "reason-phrase|Not Acceptable" msgstr "Inacceptable" diff --git a/src/scm/webid-oidc/cache.scm b/src/scm/webid-oidc/cache.scm index 4bd3e09..ec4d6b2 100644 --- a/src/scm/webid-oidc/cache.scm +++ b/src/scm/webid-oidc/cache.scm @@ -232,16 +232,18 @@ (values (build-response #:headers - (append - (response-headers new-response) - (filter - (lambda (h) - (case (car h) - ((cache-control content-location date etag expires vary) - ;; These are overriden by new-response - #f) - (else #t))) - (response-headers response)))) + (let ((new-header? + (lambda (h) + (case (car h) + ((cache-control content-location date etag expires vary) + #t) + (else #f))))) + (append + (filter new-header? (response-headers new-response)) + (filter + (lambda (h) + (not (new-header? h))) + (response-headers response))))) body) (values new-response new-response-body))) ((p:anonymous-http-request) uri #:headers headers)))) diff --git a/src/scm/webid-oidc/resource-server.scm b/src/scm/webid-oidc/resource-server.scm index 989abd9..d22e2b7 100644 --- a/src/scm/webid-oidc/resource-server.scm +++ b/src/scm/webid-oidc/resource-server.scm @@ -171,7 +171,14 @@ (build-response #:code 304 #:reason-phrase (W_ "reason-phrase|Not Modified") - #:headers headers) + #:headers + (filter + (lambda (h) + (case (car h) + ((cache-control content-location date etag expires vary) + #t) + (else #f))) + headers)) #f user)) (lambda () |