From 43aee7512f3540927246a9c4501bf9318e680f5a Mon Sep 17 00:00:00 2001 From: Mike Lang Date: Thu, 13 Oct 2016 17:00:31 -0700 Subject: [PATCH] Add new middleware for adding headers --- common/middleware/middleware.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/common/middleware/middleware.go b/common/middleware/middleware.go index ad8925ac8..fcbe0f114 100644 --- a/common/middleware/middleware.go +++ b/common/middleware/middleware.go @@ -31,3 +31,16 @@ func Merge(middlesware ...Interface) Interface { return next }) } + +// AddHeaders produces a middleware which merges the given header values into the response, +// overwriting the existing value if any. +func AddHeaders(headers map[string]string) Interface { + return Func(func(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + for key, value := range headers { + w.Header().Set(key, value) + } + next.ServeHTTP(w, r) + }) + }) +}