Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHamidreza Ghavami <70919649+hamid-gh98@users.noreply.github.com>2023-05-30 23:43:46 +0300
committerHamidreza Ghavami <70919649+hamid-gh98@users.noreply.github.com>2023-05-30 23:43:46 +0300
commita2d8c98b0df39216787d2c77af6e499857510e9e (patch)
treeb0c8674e985b5c1206d40886ad150d24fbd7552b /web/middleware
parent8442836512d82b705e404bc1749e3000115ba550 (diff)
create and move middlewares to seperate folder
Diffstat (limited to 'web/middleware')
-rw-r--r--web/middleware/domainValidator.go21
-rw-r--r--web/middleware/redirect.go34
2 files changed, 55 insertions, 0 deletions
diff --git a/web/middleware/domainValidator.go b/web/middleware/domainValidator.go
new file mode 100644
index 00000000..3adb0f0f
--- /dev/null
+++ b/web/middleware/domainValidator.go
@@ -0,0 +1,21 @@
+package middleware
+
+import (
+ "net/http"
+ "strings"
+
+ "github.com/gin-gonic/gin"
+)
+
+func DomainValidatorMiddleware(domain string) gin.HandlerFunc {
+ return func(c *gin.Context) {
+ host := strings.Split(c.Request.Host, ":")[0]
+
+ if host != domain {
+ c.AbortWithStatus(http.StatusForbidden)
+ return
+ }
+
+ c.Next()
+ }
+}
diff --git a/web/middleware/redirect.go b/web/middleware/redirect.go
new file mode 100644
index 00000000..e3dc8ada
--- /dev/null
+++ b/web/middleware/redirect.go
@@ -0,0 +1,34 @@
+package middleware
+
+import (
+ "net/http"
+ "strings"
+
+ "github.com/gin-gonic/gin"
+)
+
+func RedirectMiddleware(basePath string) gin.HandlerFunc {
+ return func(c *gin.Context) {
+ // Redirect from old '/xui' path to '/panel'
+ redirects := map[string]string{
+ "panel/API": "panel/api",
+ "xui/API": "panel/api",
+ "xui": "panel",
+ }
+
+ path := c.Request.URL.Path
+ for from, to := range redirects {
+ from, to = basePath+from, basePath+to
+
+ if strings.HasPrefix(path, from) {
+ newPath := to + path[len(from):]
+
+ c.Redirect(http.StatusMovedPermanently, newPath)
+ c.Abort()
+ return
+ }
+ }
+
+ c.Next()
+ }
+}