From f0d69d60ea6bba6c7c33b21c2776cd406a94829e Mon Sep 17 00:00:00 2001 From: Elena Shostak Date: Thu, 2 Jan 2025 11:34:44 +0100 Subject: [PATCH] Tests --- .../src/request.test.ts | 29 -------- .../server-internal/src/http_server.test.ts | 69 +++++++++++++++++++ 2 files changed, 69 insertions(+), 29 deletions(-) diff --git a/src/core/packages/http/router-server-internal/src/request.test.ts b/src/core/packages/http/router-server-internal/src/request.test.ts index 1f607a58961ab..10ab084e53535 100644 --- a/src/core/packages/http/router-server-internal/src/request.test.ts +++ b/src/core/packages/http/router-server-internal/src/request.test.ts @@ -397,35 +397,6 @@ describe('CoreKibanaRequest', () => { expect(kibanaRequest.route.options.authRequired).toBe(true); }); - it('handles required authc: { enabled: false }', () => { - const request = hapiMocks.createRequest({ - route: { - settings: { - app: { - security: { authc: { enabled: false } }, - }, - }, - }, - }); - const kibanaRequest = CoreKibanaRequest.from(request); - - expect(kibanaRequest.route.options.authRequired).toBe(false); - }); - - it(`handles required authc: { enabled: 'optional' }`, () => { - const request = hapiMocks.createRequest({ - route: { - settings: { - app: { - security: { authc: { enabled: 'optional' } }, - }, - }, - }, - }); - const kibanaRequest = CoreKibanaRequest.from(request); - - expect(kibanaRequest.route.options.authRequired).toBe('optional'); - }); it('handles required authz simple config', () => { const security: RouteSecurity = { diff --git a/src/core/packages/http/server-internal/src/http_server.test.ts b/src/core/packages/http/server-internal/src/http_server.test.ts index 69e69f784e65e..72a94177233be 100644 --- a/src/core/packages/http/server-internal/src/http_server.test.ts +++ b/src/core/packages/http/server-internal/src/http_server.test.ts @@ -1777,3 +1777,72 @@ describe('configuration change', () => { ); }); }); + +test('exposes authentication details of incoming request to a route handler', async () => { + const { registerRouter, registerAuth, server: innerServer } = await server.setup({ config$ }); + + const router = new Router('', logger, enhanceWithContext, routerOptions); + router.get( + { + path: '/', + validate: false, + security: { + authc: { enabled: false, reason: 'test' }, + authz: { enabled: false, reason: 'test' }, + }, + }, + (context, req, res) => res.ok({ body: req.route }) + ); + router.get( + { + path: '/foo', + validate: false, + security: { + authc: { enabled: 'optional' }, + authz: { enabled: false, reason: 'test' }, + }, + }, + (context, req, res) => res.ok({ body: req.route }) + ); + // mocking to have `authRegistered` filed set to true + registerAuth((req, res) => res.unauthorized()); + registerRouter(router); + + await server.start(); + await supertest(innerServer.listener) + .get('/') + .expect(200, { + method: 'get', + path: '/', + routePath: '/', + options: { + authRequired: false, + xsrfRequired: false, + access: 'internal', + tags: [], + timeout: {}, + security: { + authc: { enabled: false, reason: 'test' }, + authz: { enabled: false, reason: 'test' }, + }, + }, + }); + await supertest(innerServer.listener) + .get('/foo') + .expect(200, { + method: 'get', + path: '/foo', + routePath: '/foo', + options: { + authRequired: 'optional', + xsrfRequired: false, + access: 'internal', + tags: [], + timeout: {}, + security: { + authc: { enabled: 'optional' }, + authz: { enabled: false, reason: 'test' }, + }, + }, + }); +});