Skip to content

Upgrading org.eclipse.jetty:jetty-servlet 10 to 11

Breaking10.0.26 → 11.0.26Breaking14Security22Platform1Deprecated8New46Changed272Fixed239Other83

BreakingUpgrade verdict

14 breaking changes and a platform requirement change and 22 security fixes.

  • Code that changed HTTP response headers inside the onResponseBegin listener callback no longer works.
  • Removes the unmaintained jminix module since hawtio provides the same features.
  • Drops modules that are no longer supported.
  • The old distribution package is gone; set up a jetty-home plus your own base directory instead.
Top 5 of 45 that need code or config changes
Breaking14
Modifying HTTP headers in HttpChannel.Listener#onResponseBegin is no longer possible with Jetty 10.
HttpChannel.Listener#onResponseBegin
Removes the unmaintained jminix module since hawtio provides the same features.
jminix
Removes unsupported modules.
jetty-distribution is removed; use jetty-home with a proper ${jetty.base}.
jetty-distributionjetty-home${jetty.base}
Removes the jetty-all uber artifact.
jetty-all
Removes jetty-all.
jetty-all
Removes jetty-distribution in favor of jetty-home.
jetty-distributionjetty-home
Removes unused methods on SessionHandler.
SessionHandler
Disallows webapps overriding jakarta.* container classes per Servlet 5.0 Section 15.2.1.
Jetty 11.x uses the jakarta.servlet namespace; use Jetty 10.x for javax.servlet.
jakarta.servletjavax.servlet
Classic Jetty logging facade is replaced with slf4j-api usage.
slf4j-api
Managing Configuration within a WebAppContext has a new API that is self ordering.
ConfigurationWebAppContext
Complete WebSocket refactoring requires code updates for Jetty API or embedded Jetty users.
Uses the jakarta.* namespace for new Jakarta EE 9 "Big Bang" artifacts.
Security22
HTTP2Session cleanups that address CVE-2025-5115.
HTTP2Session
Fixes CVE-2024-22201, where HTTP/2 connections are not closed after idle timeout when TCP is congested.
Addresses CVE-2023-44487, the HTTP/2 rapid reset denial-of-service vulnerability.
Addresses GHSA-58qw-p7qm-5rvh, providing a workaround for direct users of XmlParser.
XmlParser
Addresses CVE-2023-40167.
Addresses CVE-2023-36478.
Addresses CVE-2023-36479.
Rejects "+" prefixed values in Content-Length (CVE-2023-40167).
Content-Length
Addresses CVE-2023-41900.
Cleans up Multipart handling for CVE-2023-26048.
Cleans up Cookie Cutter handling for CVE-2023-26049.
Fixes CVE-2022-2047: invalid URI parsing may produce an invalid HttpURI.authority.
HttpURI.authority
Fixes CVE-2022-2048: invalid HTTP/2 requests can lead to denial of service.
Fixes CVE-2022-2191: SslConnection does not release pooled ByteBuffers in case of errors.
SslConnectionByteBuffers
Resolves CVE-2021-34429.
Resolves CVE-2021-28169 and CVE-2021-34428.
Fixes CVE-2021-28165, where the Jetty server uses high CPU when a client sends data with length greater than 17408.
Fixes CVE-2021-28164 by normalizing ambiguous URIs.
Fixes CVE-2021-28163 by excluding the webapps directory from the deployment scan.
Addresses and resolves CVE-2020-27223.
Fixes an open redirect when sending a custom Host header to a URL with no trailing forward-slash.
Fixes CWE-331 in the DigestAuthentication class.
DigestAuthentication
Platform1
Jetty 11.x requires a minimum of Java 11.
Deprecated8
Better documents the deprecation of ContextHandler.setCompactPath(boolean).
ContextHandler.setCompactPath(boolean)
Deprecates PushCacheFilter.
PushCacheFilter
Deprecates the CGI Servlet (CVE-2023-36479).
CGI Servlet
Deprecates PushSessionCacheFilter.
PushSessionCacheFilter
Deprecates log4j 1.x support.
log4j
Deprecates UnixSocket JNR support.
UnixSocket
Deprecates support for UTF16 encoding in URIs.
Adds a DeprecationWarning Decorator.

Generated by DepDelta from published JVM bytecode. Not mixed with prose notes.

  • removed: static field Source.Origin.JAVAX_API: Source.Origin
  • added: static field Source.Origin.JAKARTA_API: Source.Origin