From feb5baa63974746614ff0b4aae68484b6bff8ec3 Mon Sep 17 00:00:00 2001 From: Vivien Kraus Date: Fri, 1 Oct 2021 09:36:40 +0200 Subject: 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. --- src/scm/webid-oidc/client-manifest.scm | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'src/scm/webid-oidc/client-manifest.scm') 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.

")) (check-redirect mf (redirect-uris mf) redir))) (define-method (->json-data (mf )) - `((@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 ) expiration-date) (when (equal? (client-id mf) public-client-uri) -- cgit v1.2.3