mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
ContextHandler: Use stdlib format for middleware (#54219)
This commit is contained in:
parent
aace0b1e7f
commit
0ffbf901d7
@ -534,7 +534,7 @@ func (hs *HTTPServer) addMiddlewaresAndStaticRoutes() {
|
|||||||
m.Use(middleware.RequestTracing(hs.tracer))
|
m.Use(middleware.RequestTracing(hs.tracer))
|
||||||
m.Use(middleware.RequestMetrics(hs.Features))
|
m.Use(middleware.RequestMetrics(hs.Features))
|
||||||
|
|
||||||
m.Use(middleware.Logger(hs.Cfg))
|
m.UseMiddleware(middleware.Logger(hs.Cfg))
|
||||||
|
|
||||||
if hs.Cfg.EnableGzip {
|
if hs.Cfg.EnableGzip {
|
||||||
m.UseMiddleware(middleware.Gziper())
|
m.UseMiddleware(middleware.Gziper())
|
||||||
@ -566,7 +566,7 @@ func (hs *HTTPServer) addMiddlewaresAndStaticRoutes() {
|
|||||||
m.Use(hs.metricsEndpoint)
|
m.Use(hs.metricsEndpoint)
|
||||||
m.Use(hs.pluginMetricsEndpoint)
|
m.Use(hs.pluginMetricsEndpoint)
|
||||||
|
|
||||||
m.Use(hs.ContextHandler.Middleware)
|
m.UseMiddleware(hs.ContextHandler.Middleware)
|
||||||
m.Use(middleware.OrgRedirect(hs.Cfg, hs.SQLStore))
|
m.Use(middleware.OrgRedirect(hs.Cfg, hs.SQLStore))
|
||||||
m.Use(accesscontrol.LoadPermissionsMiddleware(hs.accesscontrolService))
|
m.Use(accesscontrol.LoadPermissionsMiddleware(hs.accesscontrolService))
|
||||||
|
|
||||||
|
@ -90,9 +90,12 @@ func FromContext(c context.Context) *models.ReqContext {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Middleware provides a middleware to initialize the Macaron context.
|
// Middleware provides a middleware to initialize the request context.
|
||||||
func (h *ContextHandler) Middleware(mContext *web.Context) {
|
func (h *ContextHandler) Middleware(next http.Handler) http.Handler {
|
||||||
_, span := h.tracer.Start(mContext.Req.Context(), "Auth - Middleware")
|
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
ctx := r.Context()
|
||||||
|
mContext := web.FromContext(ctx)
|
||||||
|
_, span := h.tracer.Start(ctx, "Auth - Middleware")
|
||||||
defer span.End()
|
defer span.End()
|
||||||
|
|
||||||
reqContext := &models.ReqContext{
|
reqContext := &models.ReqContext{
|
||||||
@ -105,7 +108,7 @@ func (h *ContextHandler) Middleware(mContext *web.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Inject ReqContext into http.Request.Context
|
// Inject ReqContext into http.Request.Context
|
||||||
mContext.Req = mContext.Req.WithContext(ctxkey.Set(mContext.Req.Context(), reqContext))
|
*r = *r.WithContext(context.WithValue(ctx, reqContextKey{}, reqContext))
|
||||||
|
|
||||||
traceID := tracing.TraceIDFromContext(mContext.Req.Context(), false)
|
traceID := tracing.TraceIDFromContext(mContext.Req.Context(), false)
|
||||||
if traceID != "" {
|
if traceID != "" {
|
||||||
@ -168,6 +171,9 @@ func (h *ContextHandler) Middleware(mContext *web.Context) {
|
|||||||
reqContext.Logger.Error("Failed to update last_seen_at", "error", err)
|
reqContext.Logger.Error("Failed to update last_seen_at", "error", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
next.ServeHTTP(w, r)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *ContextHandler) initContextWithAnonymousUser(reqContext *models.ReqContext) bool {
|
func (h *ContextHandler) initContextWithAnonymousUser(reqContext *models.ReqContext) bool {
|
||||||
|
Loading…
Reference in New Issue
Block a user