diff --git a/proxy/respheader.go b/proxy/respheader.go deleted file mode 100644 index 2655844..0000000 --- a/proxy/respheader.go +++ /dev/null @@ -1,56 +0,0 @@ -package proxy - -import ( - "ghproxy/config" - "net/http" - - "github.com/gin-gonic/gin" -) - -func CopyResponseHeaders(resp *http.Response, c *gin.Context, cfg *config.Config) { - - copyHeaders(resp, c) - - removeHeaders(resp) - - setCORSHeaders(c, cfg) - - setDefaultHeaders(c) -} - -// 复制响应头 -func copyHeaders(resp *http.Response, c *gin.Context) { - for key, values := range resp.Header { - for _, value := range values { - c.Header(key, value) - } - } -} - -// 移除指定响应头 -func removeHeaders(resp *http.Response) { - headersToRemove := map[string]struct{}{ - "Content-Security-Policy": {}, - "Referrer-Policy": {}, - "Strict-Transport-Security": {}, - } - - for header := range headersToRemove { - resp.Header.Del(header) - } -} - -// CORS配置 -func setCORSHeaders(c *gin.Context, cfg *config.Config) { - if cfg.CORS.Enabled { - c.Header("Access-Control-Allow-Origin", "*") - } else { - c.Header("Access-Control-Allow-Origin", "") - } -} - -// 默认响应 -func setDefaultHeaders(c *gin.Context) { - c.Header("Age", "10") - c.Header("Cache-Control", "max-age=300") -}