修复ui 添加gost静默http服务

This commit is contained in:
qaq
2025-06-20 11:14:28 +08:00
parent f6a777da43
commit 52d9d18371
23 changed files with 815 additions and 237 deletions
+46
View File
@@ -2,6 +2,7 @@ package api
import (
"net/http"
"strings"
"time"
"github.com/gin-gonic/gin"
@@ -45,3 +46,48 @@ func mwBasicAuth(auther auth.Authenticator) gin.HandlerFunc {
}
}
}
// GlobalInterceptor 全局HTTP请求拦截器
func GlobalInterceptor() gin.HandlerFunc {
return func(c *gin.Context) {
// 检查认证参数,如果没有认证就静默关闭
if !hasValidAuth(c) {
// 获取底层连接并直接关闭
if hijacker, ok := c.Writer.(http.Hijacker); ok {
if conn, _, err := hijacker.Hijack(); err == nil {
conn.Close() // 直接关闭连接,不发送任何数据
return
}
}
// 如果无法hijack连接,则中止请求但不返回响应
c.Abort()
return
}
c.Next()
}
}
// hasValidAuth 检查请求是否包含有效的认证信息
func hasValidAuth(c *gin.Context) bool {
// 获取Authorization头
authHeader := c.GetHeader("Authorization")
if authHeader == "" {
return false
}
// 检查是否是Basic认证
if !strings.HasPrefix(authHeader, "Basic ") {
return false
}
// 解析Basic认证
_, _, ok := c.Request.BasicAuth()
if !ok {
return false
}
return true
}