summaryrefslogtreecommitdiff
path: root/modules/caddyhttp
diff options
context:
space:
mode:
authorFrancis Lavoie <lavofr@gmail.com>2022-09-01 23:31:54 -0400
committerGitHub <noreply@github.com>2022-09-01 23:31:54 -0400
commitd062fb40201b321c492da9b50ab8d107e0bb3c5f (patch)
tree3142f460a305746f80947962633e8402d1e3689d /modules/caddyhttp
parent73d4a8ba02292491fca289b324e89ef8c62fd435 (diff)
caddyhttp: Copy logger config to HTTP server during AutoHTTPS (#4990)
Diffstat (limited to 'modules/caddyhttp')
-rw-r--r--modules/caddyhttp/autohttps.go9
-rw-r--r--modules/caddyhttp/server.go13
2 files changed, 22 insertions, 0 deletions
diff --git a/modules/caddyhttp/autohttps.go b/modules/caddyhttp/autohttps.go
index 4cc5d2f..70f999b 100644
--- a/modules/caddyhttp/autohttps.go
+++ b/modules/caddyhttp/autohttps.go
@@ -93,6 +93,9 @@ func (app *App) automaticHTTPSPhase1(ctx caddy.Context, repl *caddy.Replacer) er
// https://github.com/caddyserver/caddy/issues/3443)
redirDomains := make(map[string][]caddy.NetworkAddress)
+ // the configured logger for an HTTPS enabled server
+ var logger *ServerLogConfig
+
for srvName, srv := range app.Servers {
// as a prerequisite, provision route matchers; this is
// required for all routes on all servers, and must be
@@ -172,6 +175,11 @@ func (app *App) automaticHTTPSPhase1(ctx caddy.Context, repl *caddy.Replacer) er
continue
}
+ // clone the logger so we can apply it to the HTTP server
+ if srv.Logs != nil {
+ logger = srv.Logs.clone()
+ }
+
// for all the hostnames we found, filter them so we have
// a deduplicated list of names for which to obtain certs
// (only if cert management not disabled for this server)
@@ -400,6 +408,7 @@ redirServersLoop:
app.Servers["remaining_auto_https_redirects"] = &Server{
Listen: redirServerAddrsList,
Routes: appendCatchAll(redirRoutes),
+ Logs: logger,
}
}
diff --git a/modules/caddyhttp/server.go b/modules/caddyhttp/server.go
index e01e7c8..2dabf46 100644
--- a/modules/caddyhttp/server.go
+++ b/modules/caddyhttp/server.go
@@ -663,6 +663,19 @@ func (slc ServerLogConfig) getLoggerName(host string) string {
return slc.DefaultLoggerName
}
+func (slc *ServerLogConfig) clone() *ServerLogConfig {
+ clone := &ServerLogConfig{}
+ clone.DefaultLoggerName = slc.DefaultLoggerName
+ clone.LoggerNames = make(map[string]string)
+ for k, v := range slc.LoggerNames {
+ clone.LoggerNames[k] = v
+ }
+ clone.SkipHosts = append(clone.SkipHosts, slc.SkipHosts...)
+ clone.SkipUnmappedHosts = slc.SkipUnmappedHosts
+ clone.ShouldLogCredentials = slc.ShouldLogCredentials
+ return clone
+}
+
// PrepareRequest fills the request r for use in a Caddy HTTP handler chain. w and s can
// be nil, but the handlers will lose response placeholders and access to the server.
func PrepareRequest(r *http.Request, repl *caddy.Replacer, w http.ResponseWriter, s *Server) *http.Request {