Proxy: Improve header handling for reverse proxy (#67279)

This commit is contained in:
Emil Tullstedt
2023-04-27 13:30:11 +02:00
committed by GitHub
parent 2306fb38dc
commit cefeef7134
3 changed files with 37 additions and 2 deletions

View File

@@ -1,6 +1,7 @@
package proxyutil
import (
"fmt"
"net"
"net/http"
"sort"
@@ -75,6 +76,16 @@ func SetProxyResponseHeaders(header http.Header) {
header.Set("Content-Security-Policy", "sandbox")
}
// SetViaHeader adds Grafana's reverse proxy to the proxy chain.
// Defined in RFC 9110 7.6.3 https://datatracker.ietf.org/doc/html/rfc9110#name-via
func SetViaHeader(header http.Header, major, minor int) {
via := fmt.Sprintf("%d.%d grafana", major, minor)
if old := header.Get("Via"); old != "" {
via = fmt.Sprintf("%s, %s", via, old)
}
header.Set("Via", via)
}
// ApplyUserHeader Set the X-Grafana-User header if needed (and remove if not).
func ApplyUserHeader(sendUserHeader bool, req *http.Request, user *user.SignedInUser) {
req.Header.Del(UserHeaderName)