浏览代码

fix(rendering): fixed server side rendering issue when sertting enforce_domain to true, fixes #6769

Torkel Ödegaard 9 年之前
父节点
当前提交
cc46b81961
共有 2 个文件被更改,包括 11 次插入5 次删除
  1. 5 4
      pkg/cmd/grafana-server/web.go
  2. 6 1
      pkg/middleware/validate_host.go

+ 5 - 4
pkg/cmd/grafana-server/web.go

@@ -46,14 +46,15 @@ func newMacaron() *macaron.Macaron {
 		Delims:     macaron.Delims{Left: "[[", Right: "]]"},
 		Delims:     macaron.Delims{Left: "[[", Right: "]]"},
 	}))
 	}))
 
 
-	if setting.EnforceDomain {
-		m.Use(middleware.ValidateHostHeader(setting.Domain))
-	}
-
 	m.Use(middleware.GetContextHandler())
 	m.Use(middleware.GetContextHandler())
 	m.Use(middleware.Sessioner(&setting.SessionOptions))
 	m.Use(middleware.Sessioner(&setting.SessionOptions))
 	m.Use(middleware.RequestMetrics())
 	m.Use(middleware.RequestMetrics())
 
 
+	// needs to be after context handler
+	if setting.EnforceDomain {
+		m.Use(middleware.ValidateHostHeader(setting.Domain))
+	}
+
 	return m
 	return m
 }
 }
 
 

+ 6 - 1
pkg/middleware/validate_host.go

@@ -8,7 +8,12 @@ import (
 )
 )
 
 
 func ValidateHostHeader(domain string) macaron.Handler {
 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
 		h := c.Req.Host
 		if i := strings.Index(h, ":"); i >= 0 {
 		if i := strings.Index(h, ":"); i >= 0 {
 			h = h[:i]
 			h = h[:i]