labstack/echo
 Watch   
 Star   
 Fork   
2 days ago
echo

v4.14.0

middleware.Logger() has been deprecated. For request logging, use middleware.RequestLogger() or middleware.RequestLoggerWithConfig().

middleware.RequestLogger() replaces middleware.Logger(), offering comparable configuration while relying on the Go standard library’s new slog logger.

The previous default output format was JSON. The new default follows the standard slog logger settings. To continue emitting request logs in JSON, configure slog accordingly:

slog.SetDefault(slog.New(slog.NewJSONHandler(os.Stdout, nil)))
e.Use(middleware.RequestLogger())

If you are developing anything more substantial than a demo, use middleware.RequestLoggerWithConfig()

Security

What's Changed

New Contributors

Full Changelog: https://github.com/labstack/echo/compare/v4.13.4...v4.14.0

2025-05-22 19:18:29
echo

v4.13.4

What's Changed

Security

New Contributors

Full Changelog: https://github.com/labstack/echo/compare/v4.13.3...v4.13.4

2024-12-19 12:51:34
echo
2024-12-11 18:18:50
echo

v4.13.1

Fixes

Full Changelog: https://github.com/labstack/echo/compare/v4.13.0...v4.13.1

2024-12-05 04:13:45
echo

JWT Middleware Removed

BREAKING CHANGE: JWT Middleware Removed from Core

The JWT middleware has been removed from Echo core due to another security vulnerability, CVE-2024-51744. For more details, refer to issue #2699. A drop-in replacement is available in the labstack/echo-jwt repository or see alternative implementation

Important: Direct assignments like token := c.Get("user").(*jwt.Token) will now cause a panic due to an invalid cast. Update your code accordingly. Replace the current imports from "github.com/golang-jwt/jwt" in your handlers to the new middleware version using "github.com/golang-jwt/jwt/v5".

Background:

The version of golang-jwt/jwt (v3.2.2) previously used in Echo core has been in an unmaintained state for some time. This is not the first vulnerability affecting this library; earlier issues were addressed in PR #1946. JWT middleware was marked as deprecated in Echo core as of v4.10.0 on 2022-12-27. If you did not notice that, consider leveraging tools like Staticcheck to catch such deprecations earlier in you dev/CI flow. For bonus points - check out gosec.

We sincerely apologize for any inconvenience caused by this change. While we strive to maintain backward compatibility within Echo core, recurring security issues with third-party dependencies have forced this decision.

Enhancements

New Contributors

Full Changelog: https://github.com/labstack/echo/compare/v4.12.0...v4.13.0

2024-04-16 02:31:01
echo

v4.12.0

v4.12.0 - 2024-04-15

Security

Enhancements

New Contributors

Full Changelog: https://github.com/labstack/echo/compare/v4.11.4...v4.12.0

2023-12-20 21:24:30
echo

v4.11.4 upgrade dependencies

Security

  • Upgrade golang.org/x/crypto to v0.17.0 to fix vulnerability issue #2562

Enhancements

2023-11-07 20:19:32
echo

v4.11.3

Security

  • 'c.Attachment' and 'c.Inline' should escape filename in 'Content-Disposition' header to avoid 'Reflect File Download' vulnerability. #2541

Enhancements

  • Tests: refactor context tests to be separate functions #2540
  • Proxy middleware: reuse echo request context #2537
  • Mark unmarshallable yaml struct tags as ignored #2536
2023-10-11 13:32:23
echo

v4.11.2

Security

  • Bump golang.org/x/net to prevent CVE-2023-39325 / CVE-2023-44487 HTTP/2 Rapid Reset Attack #2527
  • fix(sec): randomString bias introduced by #2490 #2492
  • CSRF/RequestID mw: switch math/random usage to crypto/random #2490

Enhancements

  • Delete unused context in body_limit.go #2483
  • Use Go 1.21 in CI #2505
  • Fix some typos #2511
  • Allow CORS middleware to send Access-Control-Max-Age: 0 #2518
  • Bump dependancies #2522