From d427a4cfaa782fe70f566be6707dddd0ade78b7c Mon Sep 17 00:00:00 2001 From: Aliaksandr Valialkin <valyala@victoriametrics.com> Date: Tue, 16 Jul 2024 19:08:35 +0200 Subject: [PATCH] app/vmauth: use more clear names for the field and function added at e666d64f1de7f018ac84499bbbe435bba39ac27b - Rename overrideHostHeader() function to hasEmptyHostHeader() - Rename overrideHostHeader field at UserInfo to useBackendHostHeader This should simplify the future maintenance of the code Updates https://github.com/VictoriaMetrics/VictoriaMetrics/pull/6525 --- app/vmauth/auth_config.go | 10 ++++++---- app/vmauth/main.go | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/app/vmauth/auth_config.go b/app/vmauth/auth_config.go index 24aad36133..5b73e4fdb7 100644 --- a/app/vmauth/auth_config.go +++ b/app/vmauth/auth_config.go @@ -83,7 +83,9 @@ type UserInfo struct { concurrencyLimitCh chan struct{} concurrencyLimitReached *metrics.Counter - overrideHostHeader bool + + // Whether to use backend host header in requests to backend. + useBackendHostHeader bool rt http.RoundTripper @@ -150,7 +152,7 @@ func (h *Header) MarshalYAML() (any, error) { return h.sOriginal, nil } -func overrideHostHeader(headers []*Header) bool { +func hasEmptyHostHeader(headers []*Header) bool { for _, h := range headers { if h.Name == "Host" && h.Value == "" { return true @@ -741,7 +743,7 @@ func parseAuthConfig(data []byte) (*AuthConfig, error) { if err := ui.initURLs(); err != nil { return nil, err } - ui.overrideHostHeader = overrideHostHeader(ui.HeadersConf.RequestHeaders) + ui.useBackendHostHeader = hasEmptyHostHeader(ui.HeadersConf.RequestHeaders) metricLabels, err := ui.getMetricLabels() if err != nil { @@ -806,7 +808,7 @@ func parseAuthConfigUsers(ac *AuthConfig) (map[string]*UserInfo, error) { _ = ac.ms.GetOrCreateGauge(`vmauth_user_concurrent_requests_current`+metricLabels, func() float64 { return float64(len(ui.concurrencyLimitCh)) }) - ui.overrideHostHeader = overrideHostHeader(ui.HeadersConf.RequestHeaders) + ui.useBackendHostHeader = hasEmptyHostHeader(ui.HeadersConf.RequestHeaders) rt, err := newRoundTripper(ui.TLSCAFile, ui.TLSCertFile, ui.TLSKeyFile, ui.TLSServerName, ui.TLSInsecureSkipVerify) if err != nil { diff --git a/app/vmauth/main.go b/app/vmauth/main.go index e5b9f5ce11..5366731373 100644 --- a/app/vmauth/main.go +++ b/app/vmauth/main.go @@ -235,7 +235,7 @@ func tryProcessingRequest(w http.ResponseWriter, r *http.Request, targetURL *url req := sanitizeRequestHeaders(r) req.URL = targetURL - if req.URL.Scheme == "https" || ui.overrideHostHeader { + if req.URL.Scheme == "https" || ui.useBackendHostHeader { // Override req.Host only for https requests, since https server verifies hostnames during TLS handshake, // so it expects the targetURL.Host in the request. // There is no need in overriding the req.Host for http requests, since it is expected that backend server