summaryrefslogtreecommitdiff
path: root/tests/resource-server.scm
diff options
context:
space:
mode:
Diffstat (limited to 'tests/resource-server.scm')
-rw-r--r--tests/resource-server.scm24
1 files changed, 18 insertions, 6 deletions
diff --git a/tests/resource-server.scm b/tests/resource-server.scm
index 767088d..94f2816 100644
--- a/tests/resource-server.scm
+++ b/tests/resource-server.scm
@@ -16,13 +16,14 @@
(define-module (tests resource-server)
#:use-module (webid-oidc provider-confirmation)
+ #:use-module (webid-oidc server endpoint)
+ #:use-module (webid-oidc server endpoint authentication)
#:use-module (webid-oidc jti)
#:use-module (webid-oidc jwk)
#:use-module (webid-oidc jws)
#:use-module (webid-oidc oidc-configuration)
#:use-module (webid-oidc access-token)
#:use-module (webid-oidc dpop-proof)
- #:use-module (webid-oidc resource-server)
#:use-module (webid-oidc testing)
#:use-module ((webid-oidc parameters) #:prefix p:)
#:use-module (web uri)
@@ -30,10 +31,18 @@
#:use-module (srfi srfi-19)
#:use-module (web response)
#:use-module (ice-9 optargs)
+ #:use-module (ice-9 control)
#:use-module (ice-9 receive)
#:use-module (oop goops)
#:duplicates (merge-generics))
+(define-class <backend> (<endpoint>))
+
+(define return (make-parameter values))
+
+(define-method (handle (backend <backend>) request request-body)
+ ((return) (assq-ref (request-meta request) 'user)))
+
(with-test-environment
"resource-server"
(lambda ()
@@ -91,12 +100,15 @@ DPoP: ~a\r\n\r\n"
read-request))
(define rq-body "")
(define authenticator
- (make-authenticator
- #:server-uri server-uri))
+ (make <authenticator>
+ #:backend (make <backend>)
+ #:server-uri server-uri))
(define parsed
- (parameterize ((p:current-date 20)
- (p:anonymous-http-request http-get))
- (authenticator rq rq-body)))
+ (let/ec ret
+ (parameterize ((p:current-date 20)
+ (p:anonymous-http-request http-get)
+ (return ret))
+ (handle authenticator rq rq-body))))
(unless (uri? parsed)
(exit 2))
(unless (equal? parsed subject)