github.com/treeverse/lakefs@v1.24.1-0.20240520134607-95648127bfb0/pkg/httputil/scheme.go (about)

     1  package httputil
     2  
     3  import "net/http"
     4  
     5  const (
     6  	schemeHTTP  = "http"
     7  	schemeHTTPS = "https"
     8  )
     9  
    10  func RequestScheme(r *http.Request) string {
    11  	switch {
    12  	case r.URL.Scheme == schemeHTTPS:
    13  		return schemeHTTPS
    14  	case r.Header.Get("X-Forwarded-Proto") == schemeHTTPS:
    15  		return schemeHTTPS
    16  	case r.Header.Get("X-Forwarded-Ssl") == "on":
    17  		return schemeHTTPS
    18  	default:
    19  		return schemeHTTP
    20  	}
    21  }