From fd94b80069a93b8d446e68cb7c0cdb0e70aa1749 Mon Sep 17 00:00:00 2001 From: cduvray Date: Mon, 13 May 2024 08:25:29 +0200 Subject: [PATCH] test(e2e): Bruno tests --- demo-server/bruno-e2e/401 Invalid Token.bru | 20 ++++++++++ demo-server/bruno-e2e/401 No Token.bru | 16 ++++++++ demo-server/bruno-e2e/Protected EC.bru | 20 ++++++++++ demo-server/bruno-e2e/Protected ED.bru | 20 ++++++++++ demo-server/bruno-e2e/Protected RSA.bru | 20 ++++++++++ demo-server/bruno-e2e/Public URL.bru | 15 ++++++++ demo-server/bruno-e2e/bruno.json | 9 +++++ .../bruno-e2e/demo-server/Discovery.bru | 15 ++++++++ .../bruno-e2e/demo-server/JWKS Endpoint.bru | 15 ++++++++ .../bruno-e2e/demo-server/Test Tokens.bru | 15 ++++++++ demo-server/request.http | 38 ------------------- 11 files changed, 165 insertions(+), 38 deletions(-) create mode 100644 demo-server/bruno-e2e/401 Invalid Token.bru create mode 100644 demo-server/bruno-e2e/401 No Token.bru create mode 100644 demo-server/bruno-e2e/Protected EC.bru create mode 100644 demo-server/bruno-e2e/Protected ED.bru create mode 100644 demo-server/bruno-e2e/Protected RSA.bru create mode 100644 demo-server/bruno-e2e/Public URL.bru create mode 100644 demo-server/bruno-e2e/bruno.json create mode 100644 demo-server/bruno-e2e/demo-server/Discovery.bru create mode 100644 demo-server/bruno-e2e/demo-server/JWKS Endpoint.bru create mode 100644 demo-server/bruno-e2e/demo-server/Test Tokens.bru delete mode 100644 demo-server/request.http diff --git a/demo-server/bruno-e2e/401 Invalid Token.bru b/demo-server/bruno-e2e/401 Invalid Token.bru new file mode 100644 index 0000000..b56b98d --- /dev/null +++ b/demo-server/bruno-e2e/401 Invalid Token.bru @@ -0,0 +1,20 @@ +meta { + name: 401 Invalid Token + type: http + seq: 6 +} + +get { + url: http://localhost:3000/api/protected + body: none + auth: bearer +} + +auth:bearer { + token: blablabla.xxxx.xxxx +} + +assert { + res.status: eq 401 + res.headers['www-authenticate']: eq Bearer error="invalid_token" +} diff --git a/demo-server/bruno-e2e/401 No Token.bru b/demo-server/bruno-e2e/401 No Token.bru new file mode 100644 index 0000000..5f6bac2 --- /dev/null +++ b/demo-server/bruno-e2e/401 No Token.bru @@ -0,0 +1,16 @@ +meta { + name: 401 No Token + type: http + seq: 5 +} + +get { + url: http://localhost:3000/api/protected + body: none + auth: none +} + +assert { + res.status: eq 401 + res.headers['www-authenticate']: eq Bearer +} diff --git a/demo-server/bruno-e2e/Protected EC.bru b/demo-server/bruno-e2e/Protected EC.bru new file mode 100644 index 0000000..fa1047e --- /dev/null +++ b/demo-server/bruno-e2e/Protected EC.bru @@ -0,0 +1,20 @@ +meta { + name: Protected EC + type: http + seq: 2 +} + +get { + url: http://localhost:3000/api/protected + body: none + auth: bearer +} + +auth:bearer { + token: eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsImtpZCI6ImVjMDEifQ.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjMwMDEiLCJzdWIiOiJiQGIuY29tIiwiZXhwIjoyMDAwMDAwMDAwLCJuYmYiOjE1MTYyMzkwMjJ9.YMQHWpGLJ3P59SvPX-RIW3uT5rfzShzcP1TNcaXr0VnsxCXYO0og0c3_O30no0D_ct0hOUJINY5tBsok-66Gzw +} + +assert { + res.status: eq 200 + res.body: contains b@b.com +} diff --git a/demo-server/bruno-e2e/Protected ED.bru b/demo-server/bruno-e2e/Protected ED.bru new file mode 100644 index 0000000..e9c82ae --- /dev/null +++ b/demo-server/bruno-e2e/Protected ED.bru @@ -0,0 +1,20 @@ +meta { + name: Protected ED + type: http + seq: 3 +} + +get { + url: http://localhost:3000/api/protected + body: none + auth: bearer +} + +auth:bearer { + token: eyJ0eXAiOiJKV1QiLCJhbGciOiJFZERTQSIsImtpZCI6ImVkMDEifQ.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjMwMDEiLCJzdWIiOiJiQGIuY29tIiwiZXhwIjoyMDAwMDAwMDAwLCJuYmYiOjE1MTYyMzkwMjJ9.5bFOZqc-lBFy4gFifQ_CTx1A3R6Nry71gdi7KH2GGvTZQC_ZI1vNbqGnWQhpR6n_jUd9ICUc0pPI5iLCB6K1Bg +} + +assert { + res.status: eq 200 + res.body: contains b@b.com +} diff --git a/demo-server/bruno-e2e/Protected RSA.bru b/demo-server/bruno-e2e/Protected RSA.bru new file mode 100644 index 0000000..36ed575 --- /dev/null +++ b/demo-server/bruno-e2e/Protected RSA.bru @@ -0,0 +1,20 @@ +meta { + name: Protected RSA + type: http + seq: 1 +} + +get { + url: http://localhost:3000/api/protected + body: none + auth: bearer +} + +auth:bearer { + token: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6InJzYTAxIn0.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjMwMDEiLCJzdWIiOiJiQGIuY29tIiwiZXhwIjoyMDAwMDAwMDAwLCJuYmYiOjE1MTYyMzkwMjJ9.pmm8Kdk-SvycXIGpWb1R0DuP5nlB7w4QQS7trhN_OjOpbk0A8F_lC4BdClz3rol2Pgo61lcFckJgjNBj34DQGeTGOtvxdiUXNgi1aKiXH4AyPzZeZx30PgFxa1fxhuZhBAj6xIZKBSBQvVyjeVQzAScINRCBX8zfCaXSU1ZCUkJl5vbD7zT-cYIFU76we9HcIYKRXwTiAyoNn3Lixa1H3_t5sbx3om2WlIB2x-sGpoDFDjorcuJT1yQx3grTRTBzHyRBRjZ3e8wrMbiacy-m3WoEFdkssQgYi_dSQH0hvxgacvGWayK0UqD7O5UL6EzTA2feXbgA_68o5gfvSnM8CUsPut5gZr-gwVbQKPbBdCQtl_wXIMot7UNKYEiFV38x5EmUr-ShzQcditW6fciguuY1Qav502UE1UMXvt5p8-kYxw2AaaVd6iTgQBzkBrtvywMYWzIwzGNA70RvUhI2rlgcn8GEU_51Tv_NMHjp6CjDbAxQVKa0PlcRE4pd6yk_IJSR4Nska_8BQZdPbsFn--z_XHEDoRZQ1C1M6m77xVndg3zX0sNQPXfWsttCbBmaHvMKTOp0cH9rlWB9r9nTo9fn8jcfqlak2O2IAzfzsOdVfUrES6T1UWkWobs9usGgqJuIkZHbDd4tmXyPRT4wrU7hxEyE9cuvuZPAi8GYt80 +} + +assert { + res.status: eq 200 + res.body: contains b@b.com +} diff --git a/demo-server/bruno-e2e/Public URL.bru b/demo-server/bruno-e2e/Public URL.bru new file mode 100644 index 0000000..f341ec8 --- /dev/null +++ b/demo-server/bruno-e2e/Public URL.bru @@ -0,0 +1,15 @@ +meta { + name: Public URL + type: http + seq: 4 +} + +get { + url: http://localhost:3000/public + body: none + auth: none +} + +assert { + res.status: eq 200 +} diff --git a/demo-server/bruno-e2e/bruno.json b/demo-server/bruno-e2e/bruno.json new file mode 100644 index 0000000..84ba4df --- /dev/null +++ b/demo-server/bruno-e2e/bruno.json @@ -0,0 +1,9 @@ +{ + "version": "1", + "name": "jwt-authorizer E2E", + "type": "collection", + "ignore": [ + "node_modules", + ".git" + ] +} \ No newline at end of file diff --git a/demo-server/bruno-e2e/demo-server/Discovery.bru b/demo-server/bruno-e2e/demo-server/Discovery.bru new file mode 100644 index 0000000..79bf5e6 --- /dev/null +++ b/demo-server/bruno-e2e/demo-server/Discovery.bru @@ -0,0 +1,15 @@ +meta { + name: Discovery + type: http + seq: 1 +} + +get { + url: http://localhost:3001/.well-known/openid-configuration + body: none + auth: none +} + +assert { + res.status: eq 200 +} diff --git a/demo-server/bruno-e2e/demo-server/JWKS Endpoint.bru b/demo-server/bruno-e2e/demo-server/JWKS Endpoint.bru new file mode 100644 index 0000000..f34a79d --- /dev/null +++ b/demo-server/bruno-e2e/demo-server/JWKS Endpoint.bru @@ -0,0 +1,15 @@ +meta { + name: JWKS Endpoint + type: http + seq: 2 +} + +get { + url: http://localhost:3001/jwks + body: none + auth: none +} + +assert { + res.status: eq 200 +} diff --git a/demo-server/bruno-e2e/demo-server/Test Tokens.bru b/demo-server/bruno-e2e/demo-server/Test Tokens.bru new file mode 100644 index 0000000..874c10c --- /dev/null +++ b/demo-server/bruno-e2e/demo-server/Test Tokens.bru @@ -0,0 +1,15 @@ +meta { + name: Test Tokens + type: http + seq: 3 +} + +get { + url: http://localhost:3001/tokens + body: none + auth: none +} + +assert { + res.status: eq 200 +} diff --git a/demo-server/request.http b/demo-server/request.http deleted file mode 100644 index 5b12401..0000000 --- a/demo-server/request.http +++ /dev/null @@ -1,38 +0,0 @@ -### Public URL -GET http://localhost:3000/public - -### Protected RSA -GET http://localhost:3000/api/protected -Content-Type: application/json -Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6InJzYTAxIn0.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjMwMDEiLCJzdWIiOiJiQGIuY29tIiwiZXhwIjoyMDAwMDAwMDAwLCJuYmYiOjE1MTYyMzkwMjJ9.pmm8Kdk-SvycXIGpWb1R0DuP5nlB7w4QQS7trhN_OjOpbk0A8F_lC4BdClz3rol2Pgo61lcFckJgjNBj34DQGeTGOtvxdiUXNgi1aKiXH4AyPzZeZx30PgFxa1fxhuZhBAj6xIZKBSBQvVyjeVQzAScINRCBX8zfCaXSU1ZCUkJl5vbD7zT-cYIFU76we9HcIYKRXwTiAyoNn3Lixa1H3_t5sbx3om2WlIB2x-sGpoDFDjorcuJT1yQx3grTRTBzHyRBRjZ3e8wrMbiacy-m3WoEFdkssQgYi_dSQH0hvxgacvGWayK0UqD7O5UL6EzTA2feXbgA_68o5gfvSnM8CUsPut5gZr-gwVbQKPbBdCQtl_wXIMot7UNKYEiFV38x5EmUr-ShzQcditW6fciguuY1Qav502UE1UMXvt5p8-kYxw2AaaVd6iTgQBzkBrtvywMYWzIwzGNA70RvUhI2rlgcn8GEU_51Tv_NMHjp6CjDbAxQVKa0PlcRE4pd6yk_IJSR4Nska_8BQZdPbsFn--z_XHEDoRZQ1C1M6m77xVndg3zX0sNQPXfWsttCbBmaHvMKTOp0cH9rlWB9r9nTo9fn8jcfqlak2O2IAzfzsOdVfUrES6T1UWkWobs9usGgqJuIkZHbDd4tmXyPRT4wrU7hxEyE9cuvuZPAi8GYt80 - -### Protected EC -GET http://localhost:3000/api/protected -Content-Type: application/json -Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsImtpZCI6ImVjMDEifQ.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjMwMDEiLCJzdWIiOiJiQGIuY29tIiwiZXhwIjoyMDAwMDAwMDAwLCJuYmYiOjE1MTYyMzkwMjJ9.YMQHWpGLJ3P59SvPX-RIW3uT5rfzShzcP1TNcaXr0VnsxCXYO0og0c3_O30no0D_ct0hOUJINY5tBsok-66Gzw - -### Protected Ed -GET http://localhost:3000/api/protected -Content-Type: application/json -Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJFZERTQSIsImtpZCI6ImVkMDEifQ.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjMwMDEiLCJzdWIiOiJiQGIuY29tIiwiZXhwIjoyMDAwMDAwMDAwLCJuYmYiOjE1MTYyMzkwMjJ9.5bFOZqc-lBFy4gFifQ_CTx1A3R6Nry71gdi7KH2GGvTZQC_ZI1vNbqGnWQhpR6n_jUd9ICUc0pPI5iLCB6K1Bg - -### 401 (no token) -GET http://localhost:3000/api/protected -Content-Type: application/json - -### 401 (invalid_token) -GET http://localhost:3000/api/protected -Content-Type: application/json -Authorization: Bearer blablabla.xxxx.xxxx - -### discovery -GET http://localhost:3001/.well-known/openid-configuration -Content-Type: application/json - -### jwks -GET http://localhost:3001/jwks -Content-Type: application/json - -### Test tokens -GET http://localhost:3001/tokens -Content-Type: application/json