From 996ec039b6f24a4cc7b5969083d4aebd0d805cb5 Mon Sep 17 00:00:00 2001
From: shamoon <4887959+shamoon@users.noreply.github.com>
Date: Mon, 9 Sep 2024 11:37:02 -0700
Subject: [PATCH] Enhancement: remove wg-easy custom proxy, use password header
---
src/utils/proxy/handlers/credentialed.js | 2 ++
src/widgets/wgeasy/component.jsx | 6 +++---
src/widgets/wgeasy/widget.js | 10 ++++++++--
3 files changed, 13 insertions(+), 5 deletions(-)
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;