From 78b73e8166856ffc288b6e77da51b245da78227e Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Thu, 4 Sep 2025 10:23:43 -0700 Subject: [PATCH] Refactor basic auth header generation --- src/utils/proxy/handlers/credentialed.js | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/utils/proxy/handlers/credentialed.js b/src/utils/proxy/handlers/credentialed.js index 712273bd6..e92dddaed 100644 --- a/src/utils/proxy/handlers/credentialed.js +++ b/src/utils/proxy/handlers/credentialed.js @@ -8,6 +8,10 @@ import widgets from "widgets/widgets"; const logger = createLogger("credentialedProxyHandler"); +function basicAuthHeader(widget) { + return `Basic ${Buffer.from(`${widget.username}:${widget.password}`).toString("base64")}`; +} + export default async function credentialedProxyHandler(req, res, map) { const { group, service, endpoint, index } = req.query; @@ -61,7 +65,7 @@ export default async function credentialedProxyHandler(req, res, map) { if (widget.key) { headers.Authorization = `Bearer ${widget.key}`; } else { - headers.Authorization = `Basic ${Buffer.from(`${widget.username}:${widget.password}`).toString("base64")}`; + headers.Authorization = basicAuthHeader(widget); } } else if (widget.type === "proxmox") { headers.Authorization = `PVEAPIToken=${widget.username}=${widget.password}`; @@ -78,31 +82,31 @@ export default async function credentialedProxyHandler(req, res, map) { if (widget.key) { headers["NC-Token"] = `${widget.key}`; } else { - headers.Authorization = `Basic ${Buffer.from(`${widget.username}:${widget.password}`).toString("base64")}`; + headers.Authorization = basicAuthHeader(widget); } } else if (widget.type === "paperlessngx") { if (widget.key) { headers.Authorization = `Token ${widget.key}`; } else { - headers.Authorization = `Basic ${Buffer.from(`${widget.username}:${widget.password}`).toString("base64")}`; + headers.Authorization = basicAuthHeader(widget); } } else if (widget.type === "azuredevops") { headers.Authorization = `Basic ${Buffer.from(`$:${widget.key}`).toString("base64")}`; } else if (widget.type === "glances") { - headers.Authorization = `Basic ${Buffer.from(`${widget.username}:${widget.password}`).toString("base64")}`; + headers.Authorization = basicAuthHeader(widget); } else if (widget.type === "plantit") { headers.Key = `${widget.key}`; } else if (widget.type === "myspeed") { headers.Password = `${widget.password}`; } else if (widget.type === "esphome") { if (widget.username && widget.password) { - headers.Authorization = `Basic ${Buffer.from(`${widget.username}:${widget.password}`).toString("base64")}`; + headers.Authorization = basicAuthHeader(widget); } else if (widget.key) { headers.Cookie = `authenticated=${widget.key}`; } } else if (widget.type === "wgeasy") { if (widget.username && widget.password) { - headers.Authorization = `Basic ${Buffer.from(`${widget.username}:${widget.password}`).toString("base64")}`; + headers.Authorization = basicAuthHeader(widget); } else { headers.Authorization = widget.password; }