summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVivien Kraus <vivien@planete-kraus.eu>2021-10-01 09:36:40 +0200
committerVivien Kraus <vivien@planete-kraus.eu>2021-10-04 23:01:36 +0200
commitfeb5baa63974746614ff0b4aae68484b6bff8ec3 (patch)
tree1c3e82960a60378952f3d6873e48f2f408b394a6
parent48f5629f8e54f024e8763aeb12be513851ef28f3 (diff)
client manifest: make room for client manifest extensions
In case of multiple inheritance, it is required that the ->json-data method for the base class to allow for a next method.
-rw-r--r--po/disfluid.pot4
-rw-r--r--po/fr.po4
-rw-r--r--src/scm/webid-oidc/client-manifest.scm13
3 files changed, 14 insertions, 7 deletions
diff --git a/po/disfluid.pot b/po/disfluid.pot
index 8587eb6..5f695c9 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-04 22:59+0200\n"
+"POT-Creation-Date: 2021-10-04 23:00+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"
@@ -460,7 +460,7 @@ msgid ""
"approved.</p>"
msgstr ""
-#: src/scm/webid-oidc/client-manifest.scm:263
+#: src/scm/webid-oidc/client-manifest.scm:270
msgid "cannot serve the public manifest"
msgstr ""
diff --git a/po/fr.po b/po/fr.po
index 83b28dd..3c51f45 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -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-04 22:59+0200\n"
+"POT-Creation-Date: 2021-10-04 23:00+0200\n"
"PO-Revision-Date: 2021-10-04 22:59+0200\n"
"Last-Translator: Vivien Kraus <vivien@planete-kraus.eu>\n"
"Language-Team: French <vivien@planete-kraus.eu>\n"
@@ -502,7 +502,7 @@ msgstr ""
"<p>L’applicationn veut récupérer votre code d’autorisation via <strong>~s</"
"strong>, qui n’est pas approuvé.</p>"
-#: src/scm/webid-oidc/client-manifest.scm:263
+#: src/scm/webid-oidc/client-manifest.scm:270
msgid "cannot serve the public manifest"
msgstr "impossible de servir le manifeste public"
diff --git a/src/scm/webid-oidc/client-manifest.scm b/src/scm/webid-oidc/client-manifest.scm
index dd29152..2a901c2 100644
--- a/src/scm/webid-oidc/client-manifest.scm
+++ b/src/scm/webid-oidc/client-manifest.scm
@@ -253,9 +253,16 @@ approved.</p>"))
(check-redirect mf (redirect-uris mf) redir)))
(define-method (->json-data (mf <client-manifest>))
- `((@context . "https://www.w3.org/ns/solid/oidc-context.jsonld")
- (client_id . ,(uri->string (client-id mf)))
- (redirect_uris . ,(list->vector (map uri->string (redirect-uris mf))))))
+ (let ((other
+ (catch 'goops-error
+ (lambda ()
+ (next-method))
+ (lambda _
+ '()))))
+ `((@context . "https://www.w3.org/ns/solid/oidc-context.jsonld")
+ (client_id . ,(uri->string (client-id mf)))
+ (redirect_uris . ,(list->vector (map uri->string (redirect-uris mf))))
+ ,@other)))
(define-method (serve (mf <client-manifest>) expiration-date)
(when (equal? (client-id mf) public-client-uri)