From cc46b81961d9aa5c1edb90d80e576859e95bce59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Mon, 5 Dec 2016 11:20:01 +0100 Subject: [PATCH] fix(rendering): fixed server side rendering issue when sertting enforce_domain to true, fixes #6769 --- pkg/cmd/grafana-server/web.go | 9 +++++---- pkg/middleware/validate_host.go | 7 ++++++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/pkg/cmd/grafana-server/web.go b/pkg/cmd/grafana-server/web.go index 44177ccc5b4..07a2f82b172 100644 --- a/pkg/cmd/grafana-server/web.go +++ b/pkg/cmd/grafana-server/web.go @@ -46,14 +46,15 @@ func newMacaron() *macaron.Macaron { Delims: macaron.Delims{Left: "[[", Right: "]]"}, })) - if setting.EnforceDomain { - m.Use(middleware.ValidateHostHeader(setting.Domain)) - } - m.Use(middleware.GetContextHandler()) m.Use(middleware.Sessioner(&setting.SessionOptions)) m.Use(middleware.RequestMetrics()) + // needs to be after context handler + if setting.EnforceDomain { + m.Use(middleware.ValidateHostHeader(setting.Domain)) + } + return m } diff --git a/pkg/middleware/validate_host.go b/pkg/middleware/validate_host.go index 606606b56e4..fa84e783767 100644 --- a/pkg/middleware/validate_host.go +++ b/pkg/middleware/validate_host.go @@ -8,7 +8,12 @@ import ( ) func ValidateHostHeader(domain string) macaron.Handler { - return func(c *macaron.Context) { + return func(c *Context) { + // ignore local render calls + if c.IsRenderCall { + return + } + h := c.Req.Host if i := strings.Index(h, ":"); i >= 0 { h = h[:i]