diff options
author | Vivien Kraus <vivien@planete-kraus.eu> | 2021-09-23 12:21:03 +0200 |
---|---|---|
committer | Vivien Kraus <vivien@planete-kraus.eu> | 2021-10-01 12:32:20 +0200 |
commit | 98de254d3c77feadad464f77f51f9cad5993a9f8 (patch) | |
tree | 95d959724e449588e1707075263b9d25719f10d2 /src/scm/webid-oidc/oidc-id-token.scm | |
parent | ca67854900dbf0f7200e75c73f32900a8fe0b63e (diff) |
Define an XML-loadable meta-class
Diffstat (limited to 'src/scm/webid-oidc/oidc-id-token.scm')
-rw-r--r-- | src/scm/webid-oidc/oidc-id-token.scm | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/scm/webid-oidc/oidc-id-token.scm b/src/scm/webid-oidc/oidc-id-token.scm index 19e22d7..17a3299 100644 --- a/src/scm/webid-oidc/oidc-id-token.scm +++ b/src/scm/webid-oidc/oidc-id-token.scm @@ -20,6 +20,7 @@ #:use-module (webid-oidc jwk) #:use-module (webid-oidc jti) #:use-module (webid-oidc web-i18n) + #:use-module (webid-oidc serializable) #:use-module ((webid-oidc stubs) #:prefix stubs:) #:use-module ((webid-oidc parameters) #:prefix p:) #:use-module (web uri) @@ -55,9 +56,18 @@ invalid-id-token?) (define-class <id-token> (<single-use-token> <oidc-token>) - (webid #:init-keyword #:webid #:accessor webid) + (webid #:init-keyword #:webid #:accessor webid #:->sxml uri->string) (sub #:init-keyword #:sub #:accessor sub) - (aud #:init-keyword #:aud #:accessor aud)) + (aud #:init-keyword #:aud #:accessor aud #:->sxml uri->string) + #:metaclass <plugin-class> + #:module-name '(webid-oidc oidc-id-token)) + +(define-method (equal? (x <id-token>) (y <id-token>)) + (and (equal? (alg x) (alg y)) + (equal? (iat x) (iat y)) + (equal? ((@ (webid-oidc jws) exp) x) ((@ (webid-oidc jws) exp) y)) + (equal? (nonce x) (nonce y)) + (equal? (iss x) (iss y)))) (define-method (initialize (token <id-token>) initargs) (with-exception-handler |