summaryrefslogtreecommitdiff
path: root/src/scm/webid-oidc/jwk.scm
diff options
context:
space:
mode:
authorVivien Kraus <vivien@planete-kraus.eu>2021-08-15 17:31:48 +0200
committerVivien Kraus <vivien@planete-kraus.eu>2021-09-13 19:26:45 +0200
commit44d80f685c01887f4b804de670dd59b7dd3a7c5e (patch)
treef9b651f77308ad50fd72c0b3c79315d3b941fd35 /src/scm/webid-oidc/jwk.scm
parente2b2b0654427d0a575a0c49ac69db07d5674417b (diff)
Fix exceptions
Diffstat (limited to 'src/scm/webid-oidc/jwk.scm')
-rw-r--r--src/scm/webid-oidc/jwk.scm21
1 files changed, 14 insertions, 7 deletions
diff --git a/src/scm/webid-oidc/jwk.scm b/src/scm/webid-oidc/jwk.scm
index 5b17f29..9c1425a 100644
--- a/src/scm/webid-oidc/jwk.scm
+++ b/src/scm/webid-oidc/jwk.scm
@@ -227,21 +227,28 @@
(define* (get-jwks uri #:key (http-get http-get))
(receive (response response-body) (http-get uri)
(with-exception-handler
- (lambda (cause)
- (raise-unexpected-response response cause))
+ (lambda (error)
+ (raise-exception
+ (make-not-a-jwks)
+ (make-exception-with-message
+ (if (exception-with-message? error)
+ (format #f (G_ "cannot fetch a JWKS: ~a")
+ (exception-message error))
+ (format #f (G_ "cannot fetch a JWKS"))))
+ error))
(lambda ()
(unless (eqv? (response-code response) 200)
- (raise-request-failed-unexpectedly
- (response-code response)
- (response-reason-phrase response)))
+ (fail (format #f (G_ "the request failed with ~s ~s")
+ (response-code response)
+ (response-reason-phrase response))))
(let ((content-type (response-content-type response)))
(unless content-type
- (raise-unexpected-header-value 'content-type content-type))
+ (fail (format #f (G_ "missing content-type"))))
(unless (and (eq? (car content-type) 'application/json)
(or (equal? (assoc-ref (cdr content-type) 'charset)
"utf-8")
(not (assoc-ref (cdr content-type) 'charset))))
- (raise-unexpected-header-value 'content-type content-type))
+ (fail (format #f (G_ "invalid content-type: ~s") content-type)))
(unless (string? response-body)
(set! response-body (utf8->string response-body)))
(the-jwks (stubs:json-string->scm response-body)))))))