diff --git a/server/auth.go b/server/auth.go index ce02c2736..e9ef272d7 100644 --- a/server/auth.go +++ b/server/auth.go @@ -278,7 +278,7 @@ func UsernameFromToken(r *http.Request) string { } func UsernameFromReverseProxyHeader(r *http.Request) string { - if conf.Server.ReverseProxyWhitelist == "" { + if conf.Server.ReverseProxyWhitelist == "" && !strings.HasPrefix(conf.Server.Address, "unix:") { return "" } if !validateIPAgainstList(r.RemoteAddr, conf.Server.ReverseProxyWhitelist) { @@ -401,6 +401,12 @@ func handleLoginFromHeaders(ds model.DataStore, r *http.Request) map[string]inte } func validateIPAgainstList(ip string, comaSeparatedList string) bool { + // Per https://github.com/golang/go/issues/49825, the remote address + // on a unix socket is '@' + if ip == "@" && strings.HasPrefix(conf.Server.Address, "unix:") { + return true + } + if comaSeparatedList == "" || ip == "" { return false }