Skip to content

Commit 1a9ab0d

Browse files
committed
add skippers to middleware
1 parent 0e3bf4b commit 1a9ab0d

File tree

4 files changed

+38
-7
lines changed

4 files changed

+38
-7
lines changed

cmd/server.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,9 @@ func runServer() {
5353
engine.Use(
5454
echomiddleware.Recover(),
5555
middleware.Logger(),
56-
middleware.SecureMiddleware(cfg.Security),
57-
middleware.CORSMiddleware(cfg.Security),
58-
echomiddleware.Gzip(),
56+
middleware.Secure(cfg.Security),
57+
middleware.CORS(cfg.Security),
58+
middleware.Gzip(),
5959
middleware.Context(dbPool, cfg),
6060
)
6161

pkg/transport/middleware/cors.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,21 @@ import (
66
"github.com/labstack/echo/v4/middleware"
77
)
88

9-
// CORSMiddleware returns an Echo middleware function for cors.
10-
func CORSMiddleware(cfg config.SecurityConfig) echo.MiddlewareFunc {
9+
// CORS returns an Echo middleware function for cors.
10+
func CORS(cfg config.SecurityConfig) echo.MiddlewareFunc {
1111
corsConfig := middleware.CORSConfig{
1212
AllowOrigins: cfg.AllowedHosts,
1313
AllowHeaders: []string{
1414
echo.HeaderOrigin,
1515
echo.HeaderContentType,
1616
echo.HeaderAccept,
1717
},
18+
Skipper: func(c echo.Context) bool {
19+
if c.Path() == "/*" {
20+
return false
21+
}
22+
return true
23+
},
1824
}
1925

2026
return middleware.CORSWithConfig(corsConfig)

pkg/transport/middleware/gzip.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package middleware
2+
3+
import (
4+
"github.com/labstack/echo/v4"
5+
"github.com/labstack/echo/v4/middleware"
6+
)
7+
8+
// Gzip returns an Echo middleware function for gzip.
9+
func Gzip() echo.MiddlewareFunc {
10+
gzipConfig := middleware.GzipConfig{
11+
Level: 0,
12+
MinLength: 0,
13+
Skipper: func(c echo.Context) bool {
14+
return c.Path() != "/static*"
15+
},
16+
}
17+
18+
return middleware.GzipWithConfig(gzipConfig)
19+
}

pkg/transport/middleware/secure.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,21 @@ import (
66
"github.com/labstack/echo/v4/middleware"
77
)
88

9-
// SecureMiddleware returns an Echo middleware function for cors.
10-
func SecureMiddleware(cfg config.SecurityConfig) echo.MiddlewareFunc {
9+
// Secure returns an Echo middleware function for cors.
10+
func Secure(cfg config.SecurityConfig) echo.MiddlewareFunc {
1111
secureConfig := middleware.SecureConfig{
1212
XSSProtection: cfg.XSSProtection,
1313
ContentTypeNosniff: cfg.ContentTypeNosniff,
1414
XFrameOptions: cfg.XFrameOptions,
1515
HSTSMaxAge: cfg.HSTSMaxAge,
1616
ContentSecurityPolicy: cfg.ContentSecurityPolicy,
1717
ReferrerPolicy: cfg.ReferrerPolicy,
18+
Skipper: func(c echo.Context) bool {
19+
if c.Path() == "/*" {
20+
return false
21+
}
22+
return true
23+
},
1824
}
1925

2026
return middleware.SecureWithConfig(secureConfig)

0 commit comments

Comments
 (0)