Browse Source

feat: 强制 User-Agent 中间件

runningwater 5 tháng trước cách đây
mục cha
commit
889a49c61c
3 tập tin đã thay đổi với 24 bổ sung1 xóa
  1. 1 1
      .gitignore
  2. 21 0
      app/http/middlewares/force_ua.go
  3. 2 0
      bootstrap/route.go

+ 1 - 1
.gitignore

@@ -4,7 +4,7 @@ gohub
 .DS_Store
 .history
 *.rdb
-
+output
 # Golang #
 ######################
 # `go test -c` 生成的二进制文件

+ 21 - 0
app/http/middlewares/force_ua.go

@@ -0,0 +1,21 @@
+package middlewares
+
+import (
+	"errors"
+
+	"github.com/gin-gonic/gin"
+
+	"github.com/runningwater/gohub/pkg/response"
+)
+
+// ForceUA 强制设置UA, 请求必须附带 User-Agent 标志头
+func ForceUA() gin.HandlerFunc {
+	return func(c *gin.Context) {
+		if c.Request.Header.Get("User-Agent") == "" {
+			response.BadRequest(c, errors.New("User-Agent is required"), "请求必须附带 User-Agent 标志头")
+			return
+		}
+
+		c.Next()
+	}
+}

+ 2 - 0
bootstrap/route.go

@@ -6,6 +6,7 @@ import (
 	"strings"
 
 	"github.com/gin-gonic/gin"
+
 	"github.com/runningwater/gohub/app/http/middlewares"
 	"github.com/runningwater/gohub/routes"
 )
@@ -41,6 +42,7 @@ func registerGlobalMiddleWare(router *gin.Engine) {
 		middlewares.Logger(),
 		middlewares.Recovery(),
 		middlewares.Cors(),
+		middlewares.ForceUA(),
 		// middlewares.LimitIP("1000-H"),
 	)
 }