0
Fork 0
mirror of https://github.com/caddyserver/caddy.git synced 2024-12-23 22:27:38 -05:00

Add REQUEST_SCHEME to fastcgi envs

Fixes https://github.com/mholt/caddy/issues/2152
This commit is contained in:
Alexander Danilov 2018-05-17 03:12:26 +03:00
parent 4829cc6aaf
commit 2aaaa368bb
2 changed files with 12 additions and 0 deletions

View file

@ -285,6 +285,11 @@ func (h Handler) buildEnv(r *http.Request, rule Rule, fpath string) (map[string]
// Retrieve name of remote user that was set by some downstream middleware such as basicauth. // Retrieve name of remote user that was set by some downstream middleware such as basicauth.
remoteUser, _ := r.Context().Value(httpserver.RemoteUserCtxKey).(string) remoteUser, _ := r.Context().Value(httpserver.RemoteUserCtxKey).(string)
requestScheme := "http"
if r.TLS != nil {
requestScheme = "https"
}
// Some variables are unused but cleared explicitly to prevent // Some variables are unused but cleared explicitly to prevent
// the parent environment from interfering. // the parent environment from interfering.
env = map[string]string{ env = map[string]string{
@ -301,6 +306,7 @@ func (h Handler) buildEnv(r *http.Request, rule Rule, fpath string) (map[string]
"REMOTE_IDENT": "", // Not used "REMOTE_IDENT": "", // Not used
"REMOTE_USER": remoteUser, "REMOTE_USER": remoteUser,
"REQUEST_METHOD": r.Method, "REQUEST_METHOD": r.Method,
"REQUEST_SCHEME": requestScheme,
"SERVER_NAME": h.ServerName, "SERVER_NAME": h.ServerName,
"SERVER_PORT": h.ServerPort, "SERVER_PORT": h.ServerPort,
"SERVER_PROTOCOL": r.Proto, "SERVER_PROTOCOL": r.Proto,

View file

@ -248,6 +248,12 @@ func TestBuildEnv(t *testing.T) {
envExpected["SCRIPT_NAME"] = "/fgci_test.php" envExpected["SCRIPT_NAME"] = "/fgci_test.php"
envExpected["SCRIPT_FILENAME"] = filepath.FromSlash("/fgci_test.php") envExpected["SCRIPT_FILENAME"] = filepath.FromSlash("/fgci_test.php")
testBuildEnv(r, rule, fpath, envExpected) testBuildEnv(r, rule, fpath, envExpected)
// 8. Test REQUEST_SCHEME in env
r = newReq()
envExpected = newEnv()
envExpected["REQUEST_SCHEME"] = "http"
testBuildEnv(r, rule, fpath, envExpected)
} }
func TestReadTimeout(t *testing.T) { func TestReadTimeout(t *testing.T) {