From cef2e78905105698264a155173f7fe32598a5b58 Mon Sep 17 00:00:00 2001 From: kobelb Date: Tue, 4 Sep 2018 15:18:14 -0400 Subject: [PATCH] Fixing issue when user isn't authenticated and check useRbacForRequest --- x-pack/plugins/security/server/lib/authorization/mode.js | 4 +++- .../plugins/security/server/lib/authorization/mode.test.js | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/x-pack/plugins/security/server/lib/authorization/mode.js b/x-pack/plugins/security/server/lib/authorization/mode.js index 0201fe6e783b5..da59a4810b64e 100644 --- a/x-pack/plugins/security/server/lib/authorization/mode.js +++ b/x-pack/plugins/security/server/lib/authorization/mode.js @@ -69,8 +69,10 @@ export function authorizationModeFactory( }, useRbacForRequest(request) { + // the following can happen when the user isn't authenticated. Either true or false would work here, + // but we're going to go with false as this is closer to the "legacy" behavior if (!useRbacForRequestWeakMap.has(request)) { - throw new Error(`Authorization mode is not initialized`); + return false; } return useRbacForRequestWeakMap.get(request); diff --git a/x-pack/plugins/security/server/lib/authorization/mode.test.js b/x-pack/plugins/security/server/lib/authorization/mode.test.js index 95c18cab2b918..edb68c9ceca31 100644 --- a/x-pack/plugins/security/server/lib/authorization/mode.test.js +++ b/x-pack/plugins/security/server/lib/authorization/mode.test.js @@ -45,13 +45,14 @@ describe(`#initialize`, () => { }); describe(`#useRbacForRequest`, () => { - test(`throw error if not initialized for request`, async () => { + test(`return false if not initialized for request`, async () => { const mockConfig = createMockConfig(); const mockXpackInfoFeature = createMockXpackInfoFeature(); const mode = authorizationModeFactory({}, {}, mockConfig, {}, {}, mockXpackInfoFeature); const request = {}; - expect(() => mode.useRbacForRequest(request)).toThrowErrorMatchingSnapshot(); + const result = mode.useRbacForRequest(request); + expect(result).toBe(false); }); test(`returns true if legacy fallback is disabled`, async () => {