diff options
Diffstat (limited to 'echo/middleware/vary.go')
-rw-r--r-- | echo/middleware/vary.go | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/echo/middleware/vary.go b/echo/middleware/vary.go new file mode 100644 index 0000000..8f87d29 --- /dev/null +++ b/echo/middleware/vary.go | |||
@@ -0,0 +1,24 @@ | |||
1 | package middleware | ||
2 | |||
3 | import ( | ||
4 | "github.com/labstack/echo/v4" | ||
5 | ) | ||
6 | |||
7 | type VaryConfig struct { | ||
8 | Vary []string | ||
9 | } | ||
10 | |||
11 | func VaryCookie() echo.MiddlewareFunc { | ||
12 | return VaryWithConfig(VaryConfig{Vary: []string{"Cookie"}}) | ||
13 | } | ||
14 | |||
15 | func VaryWithConfig(cfg VaryConfig) echo.MiddlewareFunc { | ||
16 | return func(next echo.HandlerFunc) echo.HandlerFunc { | ||
17 | return func(c echo.Context) error { | ||
18 | for _, v := range cfg.Vary { | ||
19 | c.Response().Header().Add(echo.HeaderVary, v) | ||
20 | } | ||
21 | return next(c) | ||
22 | } | ||
23 | } | ||
24 | } | ||