diff options
author | Vivien Kraus <vivien@planete-kraus.eu> | 2021-10-01 09:36:40 +0200 |
---|---|---|
committer | Vivien Kraus <vivien@planete-kraus.eu> | 2021-10-04 23:01:36 +0200 |
commit | feb5baa63974746614ff0b4aae68484b6bff8ec3 (patch) | |
tree | 1c3e82960a60378952f3d6873e48f2f408b394a6 /src | |
parent | 48f5629f8e54f024e8763aeb12be513851ef28f3 (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.
Diffstat (limited to 'src')
-rw-r--r-- | src/scm/webid-oidc/client-manifest.scm | 13 |
1 files changed, 10 insertions, 3 deletions
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) |