mirror of
https://github.com/Sagit-chu/flvx.git
synced 2026-10-11 03:36:37 +08:00
修复ui 添加gost静默http服务
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user