diff --git a/CHANGELOG.md b/CHANGELOG.md index d3dd22837..d522235e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,12 @@ **Bug fixes:** - **[websocket,server]** Disable http2 connect setting for websocket by default ([#11408](https://github.com/traefik/traefik/pull/11408) by [rtribotte](https://github.com/rtribotte)) +## [v2.11.18](https://github.com/traefik/traefik/tree/v2.11.18) (2025-01-07) +[All Commits](https://github.com/traefik/traefik/compare/v2.11.17...v2.11.18) + +**Bug fixes:** +- **[websocket,server]** Disable http2 connect setting for websocket by default ([#11412](https://github.com/traefik/traefik/pull/11412) by [rtribotte](https://github.com/rtribotte)) + ## [v3.3.0](https://github.com/traefik/traefik/tree/v3.3.0) (2025-01-06) [All Commits](https://github.com/traefik/traefik/compare/v3.2.0-rc1...v3.3.0) diff --git a/docs/content/deprecation/releases.md b/docs/content/deprecation/releases.md index 001b161db..d3fb7914b 100644 --- a/docs/content/deprecation/releases.md +++ b/docs/content/deprecation/releases.md @@ -6,7 +6,8 @@ Below is a non-exhaustive list of versions and their maintenance status: | Version | Release Date | Community Support | |---------|--------------|--------------------| -| 3.2 | Oct 28, 2024 | Yes | +| 3.3 | Jan 06, 2025 | Yes | +| 3.2 | Oct 28, 2024 | Ended Jan 06, 2025 | | 3.1 | Jul 15, 2024 | Ended Oct 28, 2024 | | 3.0 | Apr 29, 2024 | Ended Jul 15, 2024 | | 2.11 | Feb 12, 2024 | Ends Apr 29, 2025 | diff --git a/integration/websocket_test.go b/integration/websocket_test.go index 508bb9573..00cfb7e10 100644 --- a/integration/websocket_test.go +++ b/integration/websocket_test.go @@ -16,6 +16,7 @@ import ( "github.com/stretchr/testify/require" "github.com/stretchr/testify/suite" "github.com/traefik/traefik/v3/integration/try" + "golang.org/x/net/http2" "golang.org/x/net/websocket" ) @@ -451,6 +452,44 @@ func (s *WebsocketSuite) TestSSLhttp2() { assert.Equal(s.T(), "OK", string(msg)) } +func (s *WebsocketSuite) TestSettingEnableConnectProtocol() { + file := s.adaptFile("fixtures/websocket/config_https.toml", struct { + WebsocketServer string + }{ + WebsocketServer: "http://127.0.0.1", + }) + + s.traefikCmd(withConfigFile(file), "--log.level=DEBUG", "--accesslog") + + // Wait for traefik. + err := try.GetRequest("http://127.0.0.1:8080/api/rawdata", 10*time.Second, try.BodyContains("127.0.0.1")) + require.NoError(s.T(), err) + + // Add client self-signed cert. + roots := x509.NewCertPool() + certContent, err := os.ReadFile("./resources/tls/local.cert") + require.NoError(s.T(), err) + + roots.AppendCertsFromPEM(certContent) + + // Open a connection to inspect SettingsFrame. + conn, err := tls.Dial("tcp", "127.0.0.1:8000", &tls.Config{ + RootCAs: roots, + NextProtos: []string{"h2"}, + }) + require.NoError(s.T(), err) + + framer := http2.NewFramer(nil, conn) + frame, err := framer.ReadFrame() + require.NoError(s.T(), err) + + fr, ok := frame.(*http2.SettingsFrame) + require.True(s.T(), ok) + + _, ok = fr.Value(http2.SettingEnableConnectProtocol) + assert.False(s.T(), ok) +} + func (s *WebsocketSuite) TestHeaderAreForwarded() { upgrader := gorillawebsocket.Upgrader{} // use default options