@@ -29,6 +29,7 @@ import (
29
29
"github.com/grafana/grafana/pkg/models"
30
30
"github.com/grafana/grafana/pkg/plugins"
31
31
"github.com/grafana/grafana/pkg/registry"
32
+ "github.com/grafana/grafana/pkg/services/contexthandler"
32
33
"github.com/grafana/grafana/pkg/services/datasources"
33
34
"github.com/grafana/grafana/pkg/services/hooks"
34
35
"github.com/grafana/grafana/pkg/services/login"
@@ -75,6 +76,7 @@ type HTTPServer struct {
75
76
SearchService * search.SearchService `inject:""`
76
77
ShortURLService * shorturls.ShortURLService `inject:""`
77
78
Live * live.GrafanaLive `inject:""`
79
+ ContextHandler * contexthandler.ContextHandler `inject:""`
78
80
Listener net.Listener
79
81
}
80
82
@@ -100,7 +102,7 @@ func (hs *HTTPServer) Run(ctx context.Context) error {
100
102
Addr : net .JoinHostPort (setting .HttpAddr , setting .HttpPort ),
101
103
Handler : hs .macaron ,
102
104
}
103
- switch setting .Protocol {
105
+ switch hs . Cfg .Protocol {
104
106
case setting .HTTP2Scheme :
105
107
if err := hs .configureHttp2 (); err != nil {
106
108
return err
@@ -118,7 +120,7 @@ func (hs *HTTPServer) Run(ctx context.Context) error {
118
120
}
119
121
120
122
hs .log .Info ("HTTP Server Listen" , "address" , listener .Addr ().String (), "protocol" ,
121
- setting . Protocol , "subUrl" , setting . AppSubUrl , "socket" , setting .SocketPath )
123
+ hs . Cfg . Protocol , "subUrl" , hs . Cfg . AppSubURL , "socket" , hs . Cfg .SocketPath )
122
124
123
125
var wg sync.WaitGroup
124
126
wg .Add (1 )
@@ -133,7 +135,7 @@ func (hs *HTTPServer) Run(ctx context.Context) error {
133
135
}
134
136
}()
135
137
136
- switch setting .Protocol {
138
+ switch hs . Cfg .Protocol {
137
139
case setting .HTTPScheme , setting .SocketScheme :
138
140
if err := hs .httpSrv .Serve (listener ); err != nil {
139
141
if errors .Is (err , http .ErrServerClosed ) {
@@ -151,7 +153,7 @@ func (hs *HTTPServer) Run(ctx context.Context) error {
151
153
return err
152
154
}
153
155
default :
154
- panic (fmt .Sprintf ("Unhandled protocol %q" , setting .Protocol ))
156
+ panic (fmt .Sprintf ("Unhandled protocol %q" , hs . Cfg .Protocol ))
155
157
}
156
158
157
159
wg .Wait ()
@@ -164,29 +166,29 @@ func (hs *HTTPServer) getListener() (net.Listener, error) {
164
166
return hs .Listener , nil
165
167
}
166
168
167
- switch setting .Protocol {
169
+ switch hs . Cfg .Protocol {
168
170
case setting .HTTPScheme , setting .HTTPSScheme , setting .HTTP2Scheme :
169
171
listener , err := net .Listen ("tcp" , hs .httpSrv .Addr )
170
172
if err != nil {
171
173
return nil , errutil .Wrapf (err , "failed to open listener on address %s" , hs .httpSrv .Addr )
172
174
}
173
175
return listener , nil
174
176
case setting .SocketScheme :
175
- listener , err := net .ListenUnix ("unix" , & net.UnixAddr {Name : setting .SocketPath , Net : "unix" })
177
+ listener , err := net .ListenUnix ("unix" , & net.UnixAddr {Name : hs . Cfg .SocketPath , Net : "unix" })
176
178
if err != nil {
177
- return nil , errutil .Wrapf (err , "failed to open listener for socket %s" , setting .SocketPath )
179
+ return nil , errutil .Wrapf (err , "failed to open listener for socket %s" , hs . Cfg .SocketPath )
178
180
}
179
181
180
182
// Make socket writable by group
181
183
// nolint:gosec
182
- if err := os .Chmod (setting .SocketPath , 0660 ); err != nil {
184
+ if err := os .Chmod (hs . Cfg .SocketPath , 0660 ); err != nil {
183
185
return nil , errutil .Wrapf (err , "failed to change socket permissions" )
184
186
}
185
187
186
188
return listener , nil
187
189
default :
188
- hs .log .Error ("Invalid protocol" , "protocol" , setting .Protocol )
189
- return nil , fmt .Errorf ("invalid protocol %q" , setting .Protocol )
190
+ hs .log .Error ("Invalid protocol" , "protocol" , hs . Cfg .Protocol )
191
+ return nil , fmt .Errorf ("invalid protocol %q" , hs . Cfg .Protocol )
190
192
}
191
193
}
192
194
@@ -271,7 +273,7 @@ func (hs *HTTPServer) configureHttp2() error {
271
273
}
272
274
273
275
func (hs * HTTPServer ) newMacaron () * macaron.Macaron {
274
- macaron .Env = setting .Env
276
+ macaron .Env = hs . Cfg .Env
275
277
m := macaron .New ()
276
278
277
279
// automatically set HEAD for every GET
@@ -294,13 +296,13 @@ func (hs *HTTPServer) applyRoutes() {
294
296
func (hs * HTTPServer ) addMiddlewaresAndStaticRoutes () {
295
297
m := hs .macaron
296
298
297
- m .Use (middleware .Logger ())
299
+ m .Use (middleware .Logger (hs . Cfg ))
298
300
299
301
if setting .EnableGzip {
300
302
m .Use (middleware .Gziper ())
301
303
}
302
304
303
- m .Use (middleware .Recovery ())
305
+ m .Use (middleware .Recovery (hs . Cfg ))
304
306
305
307
for _ , route := range plugins .StaticRoutes {
306
308
pluginRoute := path .Join ("/public/plugins/" , route .PluginId )
@@ -316,7 +318,7 @@ func (hs *HTTPServer) addMiddlewaresAndStaticRoutes() {
316
318
hs .mapStatic (m , hs .Cfg .ImagesDir , "" , "/public/img/attachments" )
317
319
}
318
320
319
- m .Use (middleware .AddDefaultResponseHeaders ())
321
+ m .Use (middleware .AddDefaultResponseHeaders (hs . Cfg ))
320
322
321
323
if setting .ServeFromSubPath && setting .AppSubUrl != "" {
322
324
m .SetURLPrefix (setting .AppSubUrl )
@@ -334,16 +336,12 @@ func (hs *HTTPServer) addMiddlewaresAndStaticRoutes() {
334
336
m .Use (hs .apiHealthHandler )
335
337
m .Use (hs .metricsEndpoint )
336
338
337
- m .Use (middleware .GetContextHandler (
338
- hs .AuthTokenService ,
339
- hs .RemoteCacheService ,
340
- hs .RenderService ,
341
- ))
339
+ m .Use (hs .ContextHandler .Middleware )
342
340
m .Use (middleware .OrgRedirect ())
343
341
344
342
// needs to be after context handler
345
343
if setting .EnforceDomain {
346
- m .Use (middleware .ValidateHostHeader (setting .Domain ))
344
+ m .Use (middleware .ValidateHostHeader (hs . Cfg .Domain ))
347
345
}
348
346
349
347
m .Use (middleware .HandleNoCacheHeader ())
@@ -433,7 +431,7 @@ func (hs *HTTPServer) mapStatic(m *macaron.Macaron, rootDir string, dir string,
433
431
}
434
432
}
435
433
436
- if setting .Env == setting .Dev {
434
+ if hs . Cfg .Env == setting .Dev {
437
435
headers = func (c * macaron.Context ) {
438
436
c .Resp .Header ().Set ("Cache-Control" , "max-age=0, must-revalidate, no-cache" )
439
437
}
0 commit comments