Detect https scheme when serving ssl

This commit is contained in:
Daniel Graña 2014-10-15 09:51:05 -02:00
parent 2f232b8c98
commit 94d7f12667

View file

@ -13,6 +13,8 @@ func IsHttps(r *http.Request) bool {
switch { switch {
case r.URL.Scheme == "https": case r.URL.Scheme == "https":
return true return true
case r.TLS != nil:
return true
case strings.HasPrefix(r.Proto, "HTTPS"): case strings.HasPrefix(r.Proto, "HTTPS"):
return true return true
case r.Header.Get("X-Forwarded-Proto") == "https": case r.Header.Get("X-Forwarded-Proto") == "https":
@ -30,6 +32,8 @@ func GetScheme(r *http.Request) string {
switch { switch {
case r.URL.Scheme == "https": case r.URL.Scheme == "https":
return "https" return "https"
case r.TLS != nil:
return "https"
case strings.HasPrefix(r.Proto, "HTTPS"): case strings.HasPrefix(r.Proto, "HTTPS"):
return "https" return "https"
case r.Header.Get("X-Forwarded-Proto") == "https": case r.Header.Get("X-Forwarded-Proto") == "https":