diff --git a/src/utils/proxy/handlers/credentialed.js b/src/utils/proxy/handlers/credentialed.js index f09d0fe9..39822075 100644 --- a/src/utils/proxy/handlers/credentialed.js +++ b/src/utils/proxy/handlers/credentialed.js @@ -88,6 +88,8 @@ export default async function credentialedProxyHandler(req, res, map) { if (widget.key) { headers.Cookie = `authenticated=${widget.key}`; } + } else if (widget.type === "wgeasy") { + headers.Authorization = widget.password; } else { headers["X-API-Key"] = `${widget.key}`; } diff --git a/src/widgets/wgeasy/component.jsx b/src/widgets/wgeasy/component.jsx index 624002c4..125b92bf 100644 --- a/src/widgets/wgeasy/component.jsx +++ b/src/widgets/wgeasy/component.jsx @@ -5,14 +5,14 @@ import useWidgetAPI from "utils/proxy/use-widget-api"; export default function Component({ service }) { const { widget } = service; - const { data: infoData, error: infoError } = useWidgetAPI(widget); + const { data: infoData, error: infoError } = useWidgetAPI(widget, "client"); if (!widget.fields) { widget.fields = ["connected", "enabled", "total"]; } - if (infoError) { - return ; + if (infoError || infoData?.statusCode > 400) { + return ; } if (!infoData) { diff --git a/src/widgets/wgeasy/widget.js b/src/widgets/wgeasy/widget.js index 7f7d69d7..c85c2692 100644 --- a/src/widgets/wgeasy/widget.js +++ b/src/widgets/wgeasy/widget.js @@ -1,8 +1,14 @@ -import wgeasyProxyHandler from "./proxy"; +import credentialedProxyHandler from "utils/proxy/handlers/credentialed"; const widget = { api: "{url}/api/{endpoint}", - proxyHandler: wgeasyProxyHandler, + proxyHandler: credentialedProxyHandler, + + mappings: { + client: { + endpoint: "wireguard/client", + }, + }, }; export default widget;