From 14a2f0c24fe835402d519d55e6a5a18c624de1f6 Mon Sep 17 00:00:00 2001 From: croway Date: Thu, 22 Oct 2026 16:12:37 +0200 Subject: [PATCH] CAMEL-25917: docs - upgrade guide entries for the camel-undertow WebSocket consumer handlers in 4.22.3 and 4.18.6 The fix is backported to camel-4.22.x and camel-4.18.x. Add the 4.24 entry under "Upgrading from 4.22.2 to 4.22.3". On 4.18.x the handlers, allowedRoles and security provider options apply to WebSocket endpoints from 4.18.6 on, so extend the existing 4.18.6 camel-undertow WebSocket entry instead of adding a separate one. --- .../ROOT/pages/camel-4x-upgrade-guide-4_18.adoc | 5 +++++ .../ROOT/pages/camel-4x-upgrade-guide-4_22.adoc | 13 +++++++++++++ 2 files changed, 18 insertions(+) diff --git a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_18.adoc b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_18.adoc index ee013cda28bab..e5cedb8881d5a 100644 --- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_18.adoc +++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_18.adoc @@ -396,6 +396,11 @@ including the messages sent by producers on that path, and keep applying while t only has producers applies their settings. A connection that was opened before these settings applied does not receive the messages of the producers, and it is closed when it sends a message. +A connection opened while only producers served a path did not pass the custom `handlers` of a consumer, as those +handlers run only for consumers. When a consumer that configures `handlers` is started on that path, such a connection +is therefore no longer served: its messages do not reach the route, it does not receive what the producers send, and +it is closed. Clients that open a connection before the consumer has started must reconnect after it has started. + A WebSocket client that connected without satisfying the configured security provider or allowed roles is now rejected: it must authenticate, or the option must be removed from the WebSocket endpoint. diff --git a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_22.adoc b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_22.adoc index 934621f1cf422..5fb06ba6af28b 100644 --- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_22.adoc +++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_22.adoc @@ -299,6 +299,19 @@ has an entry with a wildcard such as `https://*` or an entry `null`, the origin credentials. Previously credentials were allowed for every origin. A cross-origin client that sends cookies or other credentials must have its origin listed in `allowedOrigins`. +=== camel-undertow - a WebSocket connection opened before a consumer with custom handlers started is no longer served + +On a WebSocket path whose producer applies a security provider or allowed roles, a connection could be accepted while +only the producer served the path, before its consumer was started for the first time. Such a connection ran the +producer checks but not the custom `handlers` the consumer configures, as those handlers run only for consumers. Once +the consumer was started, the connection was still treated as having passed the consumer checks, so its messages +reached the route and it kept receiving what the producer sent. + +Once a consumer that configures `handlers` is started on a path, a connection opened on that path before the consumer +first ran is no longer served: its messages no longer reach the route and it no longer receives what the producer +sends, and the connection is closed. Clients that open a connection in this window must reconnect after the consumer +has started. + == Upgrading from 4.22.1 to 4.22.2 === camel-lra - only an LRA hosted by the configured coordinator is joined