Skip to content

Commit 7f0bc55

Browse files
committed
Merged branch 'jetty-10.0.x' into 'jetty-11.0.x'.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2 parents 6eadb89 + bd030c7 commit 7f0bc55

File tree

5 files changed

+339
-72
lines changed

5 files changed

+339
-72
lines changed

VERSION.txt

+39-35
Original file line numberDiff line numberDiff line change
@@ -241,10 +241,10 @@ jetty-10.0.1 - 19 February 2021
241241
+ 4275 Path Normalization/Traversal - Context Matching
242242
+ 4515 Validation extension should not downcast CoreSession
243243
+ 5492 Add ability to manage start modules by java feature
244-
+ 5499 Improve temporary buffer usage for WebSocket PerMessageDeflate.
244+
+ 5499 Improve temporary buffer usage for WebSocket PerMessageDeflate
245245
+ 5605 Blocked IO Thread not woken
246246
+ 5689 Jetty ssl keystorePath doesn't work with absolute path
247-
+ 5706 The WebSocket ServerUpgradeResponse can produce NPE in jetty 10.
247+
+ 5706 The WebSocket ServerUpgradeResponse can produce NPE in jetty 10
248248
+ 5725 Review Preventers
249249
+ 5755 Cannot configure maxDynamicTableSize on HTTP2Client
250250
+ 5757 Review Inferred vs Assumed charsets
@@ -258,7 +258,7 @@ jetty-10.0.1 - 19 February 2021
258258
+ 5799 Allow specifying the duration an object can stay in a pool
259259
+ 5824 Build up of ConstraintMappings when stopping and starting WebAppContext
260260
+ 5830 Jetty-util contains wrong Import-Package
261-
+ 5844 --download flag to jetty-start causes NullPointerException
261+
+ 5844 download flag to jetty-start causes NullPointerException
262262
+ 5845 Use UTF-8 encoding for client basic auth if requested
263263
+ 5850 NPE at Principal WebSocketSession.getUserPrincipal()
264264
+ 5851 org.eclipse.jetty.websocket.servlet.WebSocketServlet cleanup
@@ -304,7 +304,8 @@ jetty-10.0.0 - 02 December 2020
304304
+ 5555 NPE for servlet with no mapping
305305
+ 5562 ArrayTernaryTrie consumes too much memory
306306
+ 5575 Add SEARCH as a known HttpMethod
307-
+ 5605 java.io.IOException: unconsumed input during http request parsing - Resolves CVE-2020-27218
307+
+ 5605 java.io.IOException: unconsumed input during http request parsing -
308+
Resolves CVE-2020-27218
308309
+ 5633 Allow to configure HttpClient request authority
309310
+ 5679 Distro argument --list-all-modules does not work
310311
+ 5680 No way to see which modules are enabled for the distro
@@ -382,8 +383,8 @@ jetty-9.4.35.v20201120 - 20 November 2020
382383
+ 5539 StatisticsServlet output is not valid
383384
+ 5562 ArrayTernaryTrie consumes too much memory
384385
+ 5575 Add SEARCH as a known HttpMethod
385-
+ 5605 java.io.IOException: unconsumed input during http
386-
request parsing - Resolves CVE-2020-27218
386+
+ 5605 java.io.IOException: unconsumed input during http request parsing -
387+
Resolves CVE-2020-27218
387388
+ 5633 Allow to configure HttpClient request authority
388389

389390
jetty-9.4.34.v20201102 - 02 November 2020
@@ -640,7 +641,8 @@ jetty-9.4.30.v20200611 - 11 June 2020
640641
+ 4923 SecureRequestCustomizer.SslAttributes does not cache cert chain like
641642
before
642643
+ 4929 HttpClient: HttpCookieStore.Empty prevents sending cookies
643-
+ 4936 Response header overflow leads to buffer corruptions - Resolves CVE-2019-17638
644+
+ 4936 Response header overflow leads to buffer corruptions - Resolves
645+
CVE-2019-17638
644646

645647
jetty-9.4.29.v20200521 - 21 May 2020
646648
+ 2188 Lock contention creating HTTP/2 streams
@@ -867,7 +869,8 @@ jetty-9.4.22.v20191022 - 22 October 2019
867869
inclusion of sessionid
868870

869871
jetty-9.4.21.v20190926 - 26 September 2019
870-
+ Includes fixes for CVE-2019-9511, CVE-2019-9512, CVE-2019-9514, CVE-2019-9515, CVE-2019-9516, and CVE-2019-9518
872+
+ Includes fixes for CVE-2019-9511, CVE-2019-9512, CVE-2019-9514,
873+
CVE-2019-9515, CVE-2019-9516, and CVE-2019-9518
871874
+ 97 Permanent UnavailableException thrown during servlet request handling
872875
should cause servlet destroy
873876
+ 137 Support OAuth
@@ -1013,16 +1016,19 @@ jetty-9.4.18.v20190429 - 29 April 2019
10131016
jetty-9.4.17.v20190418 - 18 April 2019
10141017
+ 2140 Infinispan and hazelcast changes to scavenge zombie expired sessions
10151018
+ 3464 Split SslContextFactory into Client and Server
1016-
+ 3549 Directory Listing on Windows reveals Resource Base path - Resolves CVE-2019-10246
1017-
+ 3555 DefaultHandler Reveals Base Resource Path of each Context - Resolves CVE-2019-10247
1019+
+ 3549 Directory Listing on Windows reveals Resource Base path - Resolves
1020+
CVE-2019-10246
1021+
+ 3555 DefaultHandler Reveals Base Resource Path of each Context - Resolves
1022+
CVE-2019-10247
10181023

10191024
jetty-9.4.16.v20190411 - 11 April 2019
10201025
+ 1861 Limit total bytes pooled by ByteBufferPools
10211026
+ 3133 Logging of `key.readyOps()` can throw unchecked `CancelledKeyException`
10221027
+ 3159 WebSocket permessage-deflate RSV1 validity check
10231028
+ 3274 OSGi versions of java.base classes in
10241029
org.apache.felix:org.osgi.foundation:jar conflicts with new rules on Java 9+
1025-
+ 3319 Modernize Directory Listing: HTML5 and Sorting - Resolves CVE-2019-10241
1030+
+ 3319 Modernize Directory Listing: HTML5 and Sorting - Resolves
1031+
CVE-2019-10241
10261032
+ 3361 HandlerCollection.addHandler is lacking synchronization
10271033
+ 3373 OutOfMemoryError: Java heap space in GZIPContentDecoder
10281034
+ 3389 Websockets jsr356 willDecode not invoked during decoding
@@ -1095,8 +1101,10 @@ jetty-9.3.28.v20191105 - 05 November 2019
10951101
+ 4217 SslConnection.DecryptedEnpoint.flush eternal busy loop
10961102

10971103
jetty-9.3.27.v20190418 - 18 April 2019
1098-
+ 3549 Directory Listing on Windows reveals Resource Base path - Resolves CVE-2019-10246
1099-
+ 3555 DefaultHandler Reveals Base Resource Path of each Context - Resolves CVE-2019-10247
1104+
+ 3549 Directory Listing on Windows reveals Resource Base path - Resolves
1105+
CVE-2019-10246
1106+
+ 3555 DefaultHandler Reveals Base Resource Path of each Context - Resolves
1107+
CVE-2019-10247
11001108

11011109
jetty-9.3.26.v20190403 - 03 April 2019
11021110
+ 2954 Improve cause reporting for HttpClient failures
@@ -1110,11 +1118,14 @@ jetty-9.2.29.v20191105 - 05 November 2019
11101118
+ 4217 SslConnection.DecryptedEnpoint.flush eternal busy loop
11111119

11121120
jetty-9.2.28.v20190418 - 18 April 2019
1113-
+ 3549 Directory Listing on Windows reveals Resource Base path - Resolves CVE-2019-10246
1114-
+ 3555 DefaultHandler Reveals Base Resource Path of each Context - Resolves CVE-2019-10247
1121+
+ 3549 Directory Listing on Windows reveals Resource Base path - Resolves
1122+
CVE-2019-10246
1123+
+ 3555 DefaultHandler Reveals Base Resource Path of each Context - Resolves
1124+
CVE-2019-10247
11151125

11161126
jetty-9.2.27.v20190403 - 03 April 2019
1117-
+ 3319 Refactored Directory Listing to modernize and avoid XSS - Resolves CVE-2019-10241
1127+
+ 3319 Refactored Directory Listing to modernize and avoid XSS - Resolves
1128+
CVE-2019-10241
11181129

11191130
jetty-9.4.14.v20181114 - 14 November 2018
11201131
+ 3097 Duplicated programmatic Servlet Listeners causing duplicate calls
@@ -11824,31 +11835,24 @@ jetty-1.1
1182411835
jetty-1.0.1
1182511836
+ Bug fixes
1182611837

11827-
jetty-1.0 - Jan 1998
11838+
jetty-1.0 - 01 January 1998
1182811839
+ MBServlerV5 renamed to Jetty
1182911840
+ First release in com.mortbay package structure
11830-
+ Included Util, JDBC, HTML, HTTP, Jetty
11831-
11832-
MBServler-V4.5Beta
11833-
+ Using It JSDK1.0Beta API
11834-
+ Improved HTML package.
11835-
+ Filter mechanism inspired by JigSaw
11836-
11837-
MBServler-V4
11841+
+ Included Util, JDBC, HTML, HTTP, Jetty MBServler-V4.5Beta + Using It
11842+
JSDK1.0Beta API + Improved HTML package. + Filter mechanism inspired by
11843+
JigSaw MBServler-V4
1183811844
+ JeevesA1.2 servlet API
1183911845
+ Better configuration and setup for embedding in other Java applications.
11840-
+ Util classes from Intelligent Switched Systems.
11841-
11842-
MBServler-V1 / IssueTracker 3.1
11843-
+ The IssueTracker HTTP server has been separated from the Issue Tracker application and updated to the java.servlet interface. It is now called MBServler
11844-
+ JDBC module
11845-
11846-
IssueTracker-2.0
11846+
+ Util classes from Intelligent Switched Systems. MBServler-V1 / IssueTracker
11847+
3.1
11848+
+ The IssueTracker HTTP server has been separated from the Issue Tracker
11849+
application and updated to the java.servlet interface. It is now called
11850+
MBServler
11851+
+ JDBC module IssueTracker-2.0
1184711852
+ Faster HTTP server
1184811853
+ Basic authentication
11849-
+ User management
11850-
11851-
IssueTracker-1.0 - Jan 1995
11854+
+ User management IssueTracker-1.0 - Jan 1995
1185211855
+ Won the Australian Java Programming Contest!
1185311856
+ HTTP Server
1185411857
+ Issue tracking application
11858+

jetty-server/src/main/java/org/eclipse/jetty/server/session/SessionHandler.java

+46-28
Original file line numberDiff line numberDiff line change
@@ -1614,41 +1614,59 @@ else if (!DispatcherType.REQUEST.equals(baseRequest.getDispatcherType()))
16141614
if (LOG.isDebugEnabled())
16151615
LOG.debug("Got Session ID {} from cookie {}", id, sessionCookie);
16161616

1617-
//retrieve the session, which increments the reference count
1618-
HttpSession s = getHttpSession(id);
1619-
//associate it with the request so its reference count
1620-
//will be decremented as the request completes
1621-
if (s != null && isValid(s))
1622-
baseRequest.enterSession(s);
1623-
1624-
if (requestedSessionId == null)
1617+
if (session == null)
16251618
{
1626-
//no previous id, always accept this one
1627-
requestedSessionId = id;
1628-
session = s;
1629-
}
1630-
else if (requestedSessionId.equals(id))
1631-
{
1632-
//really a bad request, but will forgive the duplication
1633-
}
1634-
else if (session == null || !isValid(session))
1635-
{
1636-
//no previous session or invalid, accept this one
1637-
requestedSessionId = id;
1638-
session = s;
1619+
//we currently do not have a session selected, use this one if it is valid
1620+
HttpSession s = getHttpSession(id);
1621+
if (s != null && isValid(s))
1622+
{
1623+
//associate it with the request so its reference count is decremented as the
1624+
//request exits
1625+
requestedSessionId = id;
1626+
session = s;
1627+
baseRequest.enterSession(session);
1628+
baseRequest.setSession(session);
1629+
1630+
if (LOG.isDebugEnabled())
1631+
LOG.debug("Selected session {}", session);
1632+
}
1633+
else
1634+
{
1635+
if (LOG.isDebugEnabled())
1636+
LOG.debug("No session found for session cookie id {}", id);
1637+
1638+
//if we don't have a valid session id yet, just choose the current id
1639+
if (requestedSessionId == null)
1640+
requestedSessionId = id;
1641+
}
16391642
}
16401643
else
16411644
{
1642-
//previous session is valid, use it unless both valid
1643-
if (s != null && isValid(s))
1644-
throw new BadMessageException("Duplicate valid session cookies: " + requestedSessionId + "," + id);
1645+
//we currently have a valid session selected. We will throw an error
1646+
//if there is a _different_ valid session id cookie. Duplicate ids, or
1647+
//invalid session ids are ignored
1648+
if (!session.getId().equals(getSessionIdManager().getId(id)))
1649+
{
1650+
//load the session to see if it is valid or not
1651+
HttpSession s = getHttpSession(id);
1652+
if (s != null && isValid(s))
1653+
{
1654+
//associate it with the request so its reference count is decremented as the
1655+
//request exits
1656+
baseRequest.enterSession(s);
1657+
if (LOG.isDebugEnabled())
1658+
LOG.debug("Multiple different valid session ids: {}, {}", requestedSessionId, id);
1659+
throw new BadMessageException("Duplicate valid session cookies: " + requestedSessionId + " ," + id);
1660+
}
1661+
}
1662+
else
1663+
{
1664+
if (LOG.isDebugEnabled())
1665+
LOG.debug("Duplicate valid session cookie id: {}", id);
1666+
}
16451667
}
16461668
}
16471669
}
1648-
1649-
//if we wound up with a single valid session
1650-
if (session != null && isValid(session))
1651-
baseRequest.setSession(session); //associate the session with the request
16521670
}
16531671
}
16541672

scripts/release-jetty.sh

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ requiredExecutable "sed"
1818
requiredExecutable "gpg"
1919
requiredExecutable "egrep"
2020
requiredExecutable "mvn"
21+
requiredExecutable "dot"
2122

2223
proceedyn() {
2324
while true; do

0 commit comments

Comments
 (0)