[v9.0.x] CSRF: Fix additional headers option (#52347)

* merged and backport to 9.0.x

* merged http_server

* fix for provider being interface

* fix for provider maybe

* wire inject

* wire inject

* wire inject

Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
This commit is contained in:
Eric Leijonmarck
2022-07-19 07:50:31 +01:00
committed by GitHub
co-authored by Emil Tullstedt
parent 198f690667
commit e4c221afc4
4 changed files with 289 additions and 3 deletions
+5 -1
View File
@@ -14,6 +14,7 @@ import (
"sync"
"github.com/grafana/grafana/pkg/bus"
"github.com/grafana/grafana/pkg/middleware/csrf"
"github.com/grafana/grafana/pkg/api/avatar"
"github.com/grafana/grafana/pkg/api/routing"
@@ -159,6 +160,7 @@ type HTTPServer struct {
dashboardPermissionsService accesscontrol.DashboardPermissionsService
starService star.Service
CoremodelRegistry *coremodel.Registry
Csrf csrf.Service
}
type ServerOptions struct {
@@ -193,6 +195,7 @@ func ProvideHTTPServer(opts ServerOptions, cfg *setting.Cfg, routeRegister routi
avatarCacheServer *avatar.AvatarCacheServer, preferenceService pref.Service, entityEventsService store.EntityEventsService,
teamsPermissionsService accesscontrol.TeamPermissionsService, folderPermissionsService accesscontrol.FolderPermissionsService,
dashboardPermissionsService accesscontrol.DashboardPermissionsService, starService star.Service, coremodelRegistry *coremodel.Registry,
csrf csrf.Service,
) (*HTTPServer, error) {
web.Env = cfg.Env
m := web.New()
@@ -272,6 +275,7 @@ func ProvideHTTPServer(opts ServerOptions, cfg *setting.Cfg, routeRegister routi
dashboardPermissionsService: dashboardPermissionsService,
starService: starService,
CoremodelRegistry: coremodelRegistry,
Csrf: csrf,
}
if hs.Listener != nil {
hs.log.Debug("Using provided listener")
@@ -499,7 +503,7 @@ func (hs *HTTPServer) addMiddlewaresAndStaticRoutes() {
}
m.Use(middleware.Recovery(hs.Cfg))
m.UseMiddleware(middleware.CSRF(hs.Cfg.LoginCookieName, hs.log))
m.UseMiddleware(hs.Csrf.Middleware())
hs.mapStatic(m, hs.Cfg.StaticRootPath, "build", "public/build")
hs.mapStatic(m, hs.Cfg.StaticRootPath, "", "public", "/public/views/swagger.html")