From f59c55b25aeefdc7dc4f8444dd9d97ca2aabd237 Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Mon, 24 Oct 2022 14:39:18 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9B=86=E7=BE=A4=E6=9C=8D=E5=8A=A1=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE--=E8=AE=BF=E9=97=AE=E6=97=A5=E5=BF=97=E4=B8=AD?= =?UTF-8?q?=E5=8F=AF=E4=BB=A5=E8=AE=BE=E7=BD=AE=E6=98=AF=E5=90=A6=E5=8F=AA?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E9=80=9A=E7=94=A8Header?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/nodes/http_request.go | 20 ++++++++++++++++++-- internal/nodes/http_request_log.go | 6 ++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/internal/nodes/http_request.go b/internal/nodes/http_request.go index be51dd2..39239fb 100644 --- a/internal/nodes/http_request.go +++ b/internal/nodes/http_request.go @@ -1603,9 +1603,25 @@ func (this *HTTPRequest) fixRequestHeader(header http.Header) { header.Del(k) k = strings.ReplaceAll(k, "-Websocket-", "-WebSocket-") header[k] = v - } else if k == "Www-Authenticate" { + } else if strings.HasPrefix(k, "Sec-Ch") { header.Del(k) - header["WWW-Authenticate"] = v + k = strings.ReplaceAll(k, "Sec-Ch-Ua", "Sec-CH-UA") + header[k] = v + } else { + switch k { + case "Www-Authenticate": + header.Del(k) + header["WWW-Authenticate"] = v + case "A-Im": + header.Del(k) + header["A-IM"] = v + case "Content-Md5": + header.Del(k) + header["Content-MD5"] = v + case "Sec-Gpc": + header.Del(k) + header["Content-GPC"] = v + } } } } diff --git a/internal/nodes/http_request_log.go b/internal/nodes/http_request_log.go index 93d099e..c6983b9 100644 --- a/internal/nodes/http_request_log.go +++ b/internal/nodes/http_request_log.go @@ -62,7 +62,13 @@ func (this *HTTPRequest) log() { // 请求Header var pbReqHeader = map[string]*pb.Strings{} if ref == nil || ref.ContainsField(serverconfigs.HTTPAccessLogFieldHeader) { + // 是否只记录通用Header + var commonHeadersOnly = this.nodeConfig != nil && this.nodeConfig.GlobalServerConfig != nil && this.nodeConfig.GlobalServerConfig.HTTPAccessLog.CommonRequestHeadersOnly + for k, v := range this.RawReq.Header { + if commonHeadersOnly && !serverconfigs.IsCommonRequestHeader(k) { + continue + } pbReqHeader[k] = &pb.Strings{Values: v} } }