Commit Graph

1131 Commits

Author SHA1 Message Date
Greg Wilkins 8f1975cc04 Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-10-16 14:00:22 +11:00
Simone Bordet 83185334e0
Merge pull request #4182 from eclipse/jetty-9.4.x-4142-RateControl
Issue #4142 - module config for http2 maxSettingsKeys and RateControl
2019-10-15 13:00:26 +02:00
Lachlan Roberts 5329ecf5be Issue #4142 - changes from review
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-10-15 21:56:54 +11:00
Lachlan Roberts 4f640387f2 Issue #4142 - changes from review
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-10-15 21:09:01 +11:00
Lachlan Roberts 709e05a19f Issue #4142 - changes from review
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-10-15 19:08:45 +11:00
Lachlan Roberts 5ff79b0bf1 Issue #4142 - changes from review
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-10-15 11:23:53 +11:00
Lachlan Roberts a96fb176f6 Issue #4142 - module config for http2 maxSettingsKeys and RateControl
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-10-11 11:24:48 +11:00
Simone Bordet 1302c835e2 Merged branch 'jetty-9.4.x' into 'jetty-10.0.x'. 2019-10-10 12:38:29 +02:00
Simone Bordet cd57af4caf
Merge pull request #4116 from eclipse/jetty-9.4.x-4115-drop_http2_pseudo_headers
Fixes #4115 - Drop HTTP/2 pseudo headers.
2019-10-10 12:15:58 +02:00
Simone Bordet 687873cb7b Issue #4115 - Drop HTTP/2 pseudo headers.
Fixed NPE if the method was missing.
Renamed lowCase -> lowerCase.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-10-10 11:11:36 +02:00
Simone Bordet 6acc9f7be5 Issue #4115 - Drop HTTP/2 pseudo headers.
Updates after review.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-10-09 21:01:30 +02:00
Simone Bordet e2a493d7b0 Merged branch 'jetty-9.4.x' into 'jetty-10.0.x'. 2019-10-08 09:52:21 +02:00
Joakim Erdfelt d7a189fa18 Updating to version 10.0.0-SNAPSHOT 2019-10-03 12:05:26 -05:00
Joakim Erdfelt fd6a2cb9f6 Updating to version 10.0.0.alpha1 2019-10-03 11:25:06 -05:00
Simone Bordet 3be178c966 Merged 'jetty-9.4.x' into 'jetty-9.4.x-2429-httpclient_backpressure'. 2019-10-03 13:17:39 +02:00
Simone Bordet 609c144ae0 Fixes #4115 - Drop HTTP/2 pseudo headers.
Invalid HTTP/2 headers are now causing an error rather than being ignored.

HTTP2Flusher now catches HpackException.StreamException and generates a
RST_STREAM frame, rather than just closing the connection.

Modified HpackEncoder to throw HpackException in case of encoding failure.
Introduced HpackEncoder.validateEncoding (defaults true) so validation of
the headers can be disabled (useful for tests).

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-10-03 12:45:55 +02:00
Joakim Erdfelt 7807eafad9 Updating to version 9.4.22-SNAPSHOT 2019-09-26 10:46:28 -05:00
Joakim Erdfelt 72970db61a Updating to version 9.4.21.v20190926 2019-09-26 09:59:15 -05:00
Simone Bordet d39f19cc23 Issue #2429 - Review HttpClient backpressure semantic.
Introduced a Response.DemandedContentListener to explicitly separate
the will to request more content from the notification that the content
has been consumed.

Updated all transports to follow the new semantic: rather than waiting
for the callback to complete before delivering more content, now they
wait for the demand to be positive to deliver more content.

Since now the content may be unconsumed but there can be more demand,
all transport implementation had to be changed to use RetainableByteBuffer
to retain content buffers that were not consumed.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-09-19 17:19:25 +02:00
Simone Bordet 0eec727a09 After review, renamed *directBuffers to *directByteBuffers.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-09-17 12:16:10 +02:00
Simone Bordet 1ef4a416b5 Merged branch 'jetty-10.0.x' into 'jetty-10.0.x-3952-server_direct_heap_bytebuffers'. 2019-09-16 12:26:26 +02:00
olivier lamy b5d67adde1 Merge branch 'jetty-9.4.x' into jetty-10.0.x 2019-09-13 07:03:23 +10:00
olivier lamy a117c4428a fix typo
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2019-09-13 06:22:09 +10:00
Simone Bordet 6e8b610f30 Fixed compilation errors after merge.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-09-12 16:44:19 +02:00
Simone Bordet 098f5029c8 Merged branch 'jetty-9.4.x' into 'jetty-10.0.x'. 2019-09-12 15:51:23 +02:00
Simone Bordet 575a74d148
Merge pull request #4079 from eclipse/jetty-9.4.x-2815-hpackOpaqueBytes
Issue #2815 - HPack Opaque Bytes
2019-09-12 15:42:36 +02:00
Greg Wilkins afa987ac64 Update from review
reformat
Use ByteBuffer API

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-09-12 21:39:36 +10:00
Greg Wilkins 905bf82f80 reformatting
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-09-12 10:14:58 +10:00
Simone Bordet 63798f6664 Fixes #3956 - Remove and warn illegal HTTP/2 response headers.
Updates after review.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-09-11 23:55:25 +02:00
Greg Wilkins 90cf7c80bd avoid exceptions for non iso characters
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-09-11 10:50:42 +10:00
Greg Wilkins bc96561865 fixed bad merge
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-09-11 10:18:17 +10:00
Greg Wilkins bd220400a1 Merge branch 'jetty-9.4.x' into jetty-9.4.x-2815-hpackOpaqueBytes
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-09-11 10:17:33 +10:00
Simone Bordet c7867cdd5e Fixes #3956 - Remove and warn illegal HTTP/2 response headers.
Implemented RFC 7540 8.1.2.2.
Fields that should be removed are now dropped.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-09-09 19:47:06 +02:00
Simone Bordet 785ecd2165 Merged branch 'jetty-9.4.x' into 'jetty-10.0.x'. 2019-09-06 10:00:13 +02:00
Simone Bordet 4e67e8594e Merged branch 'jetty-9.4.x' into 'jetty-9.4.x-3978-http2_vulnerabilities'. 2019-09-05 23:12:35 +02:00
Simone Bordet 508ad4aff9 Issue #3978 - HTTP/2 vulnerabilities.
Code cleanups and reformatting.

Fixed logic for SETTINGS frame replies: they are not subject to rate control.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-09-05 23:11:53 +02:00
Chris Walker 189ba7a671
Merge from 9.4.x 2019-09-02 14:49:33 -04:00
康智冬 49ba6d1acb fix typo and grammar (#4045)
Signed-off-by: KangZhiDong <worldkzd@gmail.com>
2019-09-02 14:29:50 -04:00
Greg Wilkins d890748f3a More merge fixes
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-08-27 16:19:07 +10:00
Greg Wilkins 15e2f72264 updated after merge to fix tests
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-08-27 11:33:06 +10:00
Greg Wilkins 53fc01793c Updates from review
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-08-26 13:20:07 +10:00
Greg Wilkins b2aa083778 Updates from review
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-08-26 13:18:12 +10:00
olivier lamy a36af67abf Merge branch 'jetty-9.4.x' into jetty-10.0.x 2019-08-22 20:45:57 +10:00
Olivier Lamy fe3d3f7158
fix checkstyle in test sources (#4013)
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2019-08-22 19:56:41 +10:00
Simone Bordet 32fe4e5ca8 Issue #3978 - HTTP/2 vulnerabilities.
Fixed load test that required `RateControl.NO_RATE_CONTROL`.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-08-21 11:36:06 +02:00
Simone Bordet 5184c4ec3d Issue #3978 - HTTP/2 vulnerabilities.
Small fixed after review.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-08-19 11:38:01 +02:00
Greg Wilkins 5fc83c3d0c Issue #3978 HTTP2 Vulnerabilities
Reduce the number of RateControl fields, instead using common field in
HeaderParser.

Avoid null checking rateControl by having a NO_RATE_CONTROL static

HPack does not emit field with empty header name.

Apply rate control to any header parsing issue resulting in
session/stream failure

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-08-19 10:16:40 +10:00
Greg Wilkins 47fb8f4dea Issue #3978 HTTP2 Vulnerabilities
Fixed race in WindowRateControl by only removing the event that we
just inspected.

Added an AtomicInteger to track the size to avoid iterating over the
linked list.

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-08-19 10:11:28 +10:00
Greg Wilkins 764fcd63a1 Merge branch 'jetty-9.4.x' into jetty-9.4.x-3978-http2_vulnerabilities 2019-08-19 08:46:28 +10:00
Simone Bordet cfe1baa048 Issue #3978 - HTTP/2 vulnerabilities.
Implemented rate control for HTTP/2 frames using a single RateControl
object to avoid that each individual vulnerability is within limits,
but combined they still overload the server.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-08-17 22:51:39 +02:00