From cf22b49aad84afcccb3fa8d94c57a423bcf76082 Mon Sep 17 00:00:00 2001 From: Hans Thielen Date: Tue, 4 Jun 2024 11:04:55 +0200 Subject: [PATCH 1/4] Adds pfx support for custom authenticator --- chunks/6UGE6PR7.js | 67 ++++++++++++++++++++++++++++++---------------- 1 file changed, 44 insertions(+), 23 deletions(-) diff --git a/chunks/6UGE6PR7.js b/chunks/6UGE6PR7.js index 3d3ba9a0..61b3fe87 100644 --- a/chunks/6UGE6PR7.js +++ b/chunks/6UGE6PR7.js @@ -10369,31 +10369,52 @@ async function createEnigmaSession({ withoutData = false, useReloadEngine = false }) { + let createSocketMethod; + let url; const locationUrl = toValidWebsocketLocationUrl(hostConfig); - const reloadUri = encodeURIComponent(`${locationUrl}/sense/app/${appId}`); - const identityPart = identity ? `/identity/${identity}` : ""; - const reloadEnginePart = useReloadEngine ? "&workloadType=interactive-reload" : ""; - let url = `${locationUrl}/app/${appId}${identityPart}?reloadUri=${reloadUri}${reloadEnginePart}`.replace( - /^http/, - "ws" - ); + const WS = (await import("ws")).default; const isNodeEnvironment = typeof window === "undefined"; - let createSocketMethod; - if (isNodeEnvironment) { - const { headers, queryParams } = await getRestCallAuthParams({ hostConfig, method: "POST" }); - const WS = (await import("ws")).default; - Object.entries(queryParams).forEach(([key, value]) => { - url = `${url}&${key}=${value}`; - }); - createSocketMethod = (socketUrl) => new WS(socketUrl, void 0, { - headers - }); - } else { - const { queryParams } = await getWebSocketAuthParams({ hostConfig }); - Object.entries(queryParams).forEach(([key, value]) => { - url = `${url}&${key}=${value}`; - }); - createSocketMethod = (socketUrl) => new WebSocket(socketUrl); + if (hostConfig.pfx == null) { + const reloadUri = encodeURIComponent(`${locationUrl}/sense/app/${appId}`); + const identityPart = identity ? `/identity/${identity}` : ""; + const reloadEnginePart = useReloadEngine ? "&workloadType=interactive-reload" : ""; + url = `${locationUrl}/app/${appId}${identityPart}?reloadUri=${reloadUri}${reloadEnginePart}`.replace( + /^http/, + "ws" + ); + if (isNodeEnvironment) { + const {headers, queryParams} = await getRestCallAuthParams({hostConfig, method: "POST"}); + Object.entries(queryParams).forEach(([key, value]) => { + url = `${url}&${key}=${value}`; + }); + createSocketMethod = (socketUrl) => new WS(socketUrl, void 0, { + headers + }); + } else { + const {queryParams} = await getWebSocketAuthParams({hostConfig}); + Object.entries(queryParams).forEach(([key, value]) => { + url = `${url}&${key}=${value}`; + }); + createSocketMethod = (socketUrl) => new WebSocket(socketUrl); + } + } else if (isNodeEnvironment){ + const locationUrl = toValidWebsocketLocationUrl(hostConfig); + const pfx = hostConfig.pfx; + const passphrase = hostConfig.passphrase; + const {headers, queryParams} = await getRestCallAuthParams({hostConfig}); + url = `${locationUrl}/app/engineData/${appId}`; + Object.entries(queryParams).forEach(([key, value], index) => { + if (index === 0) { + url = `${url}?${key}=${value}`; + } else { + url = `${url}&${key}=${value}`; + } + }); + createSocketMethod = (socketUrl) => new WS(socketUrl, void 0, { + headers, + pfx, + passphrase, + }); } return enigma.create({ schema: engine_api_default, From f49959ef751285a4151bc3218823d54e2236394f Mon Sep 17 00:00:00 2001 From: Oliver Henrichs Date: Mon, 18 Nov 2024 16:22:54 +0100 Subject: [PATCH 2/4] Fixes compilation error --- chunks/6QRR5VUM.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chunks/6QRR5VUM.js b/chunks/6QRR5VUM.js index 92ba1354..7ec48321 100644 --- a/chunks/6QRR5VUM.js +++ b/chunks/6QRR5VUM.js @@ -10405,7 +10405,7 @@ async function createEnigmaSession({ } } else if (isNodeEnvironment) { const baseUrl = `${locationUrl}/app/engineData/${appId}${ttlPart}`; - createSocketBuilder async () => { + createSocketBuilder = async () => { const pfx = hostConfig.pfx; const passphrase = hostConfig.passphrase; const {headers, queryParams} = await getRestCallAuthParams({hostConfig}); From cf5549dea238ff6403a4d955211799026b72eb8f Mon Sep 17 00:00:00 2001 From: Oliver Henrichs Date: Mon, 18 Nov 2024 16:46:38 +0100 Subject: [PATCH 3/4] Moves baseUrl up --- chunks/6QRR5VUM.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/chunks/6QRR5VUM.js b/chunks/6QRR5VUM.js index 7ec48321..34c80f41 100644 --- a/chunks/6QRR5VUM.js +++ b/chunks/6QRR5VUM.js @@ -10369,7 +10369,7 @@ async function createEnigmaSession({ ttlSeconds, workloadType }) { - let createSocketBuilder; + let createSocketBuilder, baseUrl; const locationUrl = toValidWebsocketLocationUrl(hostConfig); const WS = (await import("ws")).default; const isNodeEnvironment = isNode(); @@ -10378,7 +10378,7 @@ async function createEnigmaSession({ const reloadUri = encodeURIComponent(`${locationUrl}/sense/app/${appId}`); const identityPart = identity ? `/identity/${identity}` : ""; const workloadTypePart = useReloadEngine ? "&workloadType=interactive-reload" : workloadType ? `&workloadType=${workloadType}` : ""; - const baseUrl = `${locationUrl}/app/${appId}${identityPart}${ttlPart}?reloadUri=${reloadUri}${workloadTypePart}`.replace( + baseUrl = `${locationUrl}/app/${appId}${identityPart}${ttlPart}?reloadUri=${reloadUri}${workloadTypePart}`.replace( /^http/, "ws" ); @@ -10404,7 +10404,7 @@ async function createEnigmaSession({ }; } } else if (isNodeEnvironment) { - const baseUrl = `${locationUrl}/app/engineData/${appId}${ttlPart}`; + baseUrl = `${locationUrl}/app/engineData/${appId}${ttlPart}`; createSocketBuilder = async () => { const pfx = hostConfig.pfx; const passphrase = hostConfig.passphrase; From 0f1aa566366595c527f12918363906d0e02f1777 Mon Sep 17 00:00:00 2001 From: Oliver Henrichs Date: Mon, 18 Nov 2024 17:16:10 +0100 Subject: [PATCH 4/4] Fixes socket url being wrongly used --- chunks/6QRR5VUM.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chunks/6QRR5VUM.js b/chunks/6QRR5VUM.js index 34c80f41..48a010ae 100644 --- a/chunks/6QRR5VUM.js +++ b/chunks/6QRR5VUM.js @@ -10389,7 +10389,7 @@ async function createEnigmaSession({ Object.entries(queryParams).forEach(([key, value]) => { url = `${url}&${key}=${value}`; }); - return (socketUrl) => new WS(socketUrl, void 0, { + return (socketUrl) => new WS(url, void 0, { headers }); }; @@ -10417,7 +10417,7 @@ async function createEnigmaSession({ url = `${url}&${key}=${value}`; } }); - return (socketUrl) => new WS(socketUrl, void 0, { + return (socketUrl) => new WS(url, void 0, { headers, pfx, passphrase,