summaryrefslogtreecommitdiff
path: root/tests/token-endpoint-issue.scm
diff options
context:
space:
mode:
authorVivien Kraus <vivien@planete-kraus.eu>2021-09-20 11:25:29 +0200
committerVivien Kraus <vivien@planete-kraus.eu>2021-09-21 22:28:51 +0200
commite910b3ba2ded990a5193f7ea0cfad525332e4171 (patch)
treeb04e74e7c06e0a0fde5edd7ac0b8773db94cd515 /tests/token-endpoint-issue.scm
parentdcd329af1ec765ca0fac97ef2dc18a3177d34083 (diff)
JWS: use GOOPS
Diffstat (limited to 'tests/token-endpoint-issue.scm')
-rw-r--r--tests/token-endpoint-issue.scm55
1 files changed, 37 insertions, 18 deletions
diff --git a/tests/token-endpoint-issue.scm b/tests/token-endpoint-issue.scm
index c80658c..0815c30 100644
--- a/tests/token-endpoint-issue.scm
+++ b/tests/token-endpoint-issue.scm
@@ -43,11 +43,10 @@
(define validity 3600)
(define authz
(parameterize ((p:current-date 0))
- (issue-authorization-code
- key
- #:validity 120
- #:webid subject
- #:client-id client)))
+ (issue <authorization-code>
+ key
+ #:webid subject
+ #:client-id client)))
(define endpoint
(make-token-endpoint
(string->uri "https://token-endpoint-issue.scm/token")
@@ -56,11 +55,12 @@
;; The code is fake!
(let ((dpop
(parameterize ((p:current-date 0))
- (issue-dpop-proof
- client-key
- #:htm 'POST
- #:htu (string->uri
- "https://token-endpoint-issue.scm/token")))))
+ (issue <dpop-proof>
+ client-key
+ #:jwk (public-key client-key)
+ #:htm 'POST
+ #:htu (string->uri
+ "https://token-endpoint-issue.scm/token")))))
(parameterize ((p:current-date 0))
(endpoint
(build-request (string->uri
@@ -75,11 +75,12 @@
(receive (response response-body . _)
(let ((dpop
(parameterize ((p:current-date 10))
- (issue-dpop-proof
- client-key
- #:htm 'POST
- #:htu (string->uri
- "https://token-endpoint-issue.scm/token")))))
+ (issue <dpop-proof>
+ client-key
+ #:jwk (public-key client-key)
+ #:htm 'POST
+ #:htu (string->uri
+ "https://token-endpoint-issue.scm/token")))))
(parameterize ((p:current-date 10))
(endpoint
(build-request (string->uri
@@ -101,11 +102,29 @@
(exit 6))
(unless refresh-token-enc
(exit 7))
- (let ((access-token (jws-decode access-token-enc
- (lambda (h) key))))
+ (let ((access-token
+ (parameterize ((p:current-date 20))
+ (decode <access-token> access-token-enc
+ #:http-request
+ (lambda* (uri . args)
+ (cond
+ ((equal? uri (string->uri "https://issuer.token-endpoint-issue.scm/.well-known/openid-configuration"))
+ (values (build-response #:headers '((content-type application/json)))
+ "{
+ \"jwks_uri\": \"https://token-endpoint-issue.scm/keys\",
+ \"token_endpoint\": \"https://token-endpoint-issue.scm/token\",
+ \"authorization_endpoint\": \"https://token-endpoint-issue.scm/authorize\",
+ \"solid_oidc_supported\": \"https://solidproject.org/TR/solid-oidc\"
+}"))
+ ((equal? uri (string->uri "https://token-endpoint-issue.scm/keys"))
+ (values (build-response #:headers '((content-type application/json)))
+ (stubs:scm->json-string `((keys . ,(list->vector (list (key->jwk key))))))))
+ (else
+ (format (current-error-port) "Unknown URI: ~s\n" (uri->string uri))
+ (exit 11))))))))
(unless access-token
(exit 8))
- (let ((access-token-cnf/jkt (access-token-cnf/jkt access-token)))
+ (let ((access-token-cnf/jkt (cnf/jkt access-token)))
(unless access-token-cnf/jkt
(exit 9))
(unless (string=? access-token-cnf/jkt (jkt client-key))