Commit Graph

1261 Commits

Author SHA1 Message Date
Greg Wilkins 4ae077f2b6 Issue #448 - RFC2616 Compliance Mode should track and report RFC7230 violations
Improved compliance level reporting
Improved method names to make code read better
2016-03-23 14:42:05 +11:00
Greg Wilkins 7f96db72c4 Issue #448 - RFC2616 Compliance Mode should track and report RFC7230 violations
Empty value is not a compliance issue
removed debug
moved violation handling to end of header rather than end of message
2016-03-23 13:13:16 +11:00
Joakim Erdfelt 0e2472b8e1 Issue #451 - RFC2616 Compliance mode should support empty headers
Updating test cases to show empty quoted header quirk
2016-03-22 11:20:50 -07:00
Greg Wilkins 9352d91d48 Issue #448 Log Compliance violations
Added a ComplianceHandler to HttpParsere to log compliance violations for #448
Am cautious that this may have a performance impact.
2016-03-22 13:58:50 +11:00
Simone Bordet f92588c485 Merged branch 'jetty-9.3.x' into 'master'. 2016-03-14 19:06:45 +01:00
Joakim Erdfelt c68d3b1d8d Updating to version 9.3.9-SNAPSHOT 2016-03-14 09:07:52 -07:00
Joakim Erdfelt 1f3b3f31f4 Updating to version 9.3.8.v20160314 2016-03-14 08:30:20 -07:00
Simone Bordet 838b5e4df2 Added test for newlines in header value. 2016-03-14 12:32:20 +01:00
Simone Bordet c583054a17 Code cleanup. 2016-03-14 12:31:28 +01:00
Simone Bordet 42151e059a Merged branch 'jetty-9.3.x' into 'master'. 2016-03-12 00:28:18 +01:00
Simone Bordet 0b82129cd8 Issue #423 (Duplicate Content-Length header not handled correctly)
Refactored tests into existing test class.
2016-03-12 00:27:48 +01:00
Simone Bordet 02190278f1 Merged branch 'jetty-9.3.x' into 'master'. 2016-03-11 22:49:49 +01:00
Simone Bordet 5f2e2820f4 Issue #423 (Duplicate Content-Length header not handled correctly)
Fixed as required by the spec, rejecting the request.
2016-03-11 22:49:24 +01:00
Joakim Erdfelt e7081d7b84 Merge branch 'jetty-9.3.x' 2016-03-08 15:53:50 -07:00
Joakim Erdfelt 862ec6f848 Merge branch 'jetty-9.2.x' into jetty-9.3.x 2016-03-08 14:32:04 -07:00
Simone Bordet d0593ab046 Merged branch 'jetty-9.3.x' into 'master'. 2016-03-08 11:56:14 +01:00
Joakim Erdfelt 07d54224c7 Issue #405 - adding testcase for problematic HttpURI parsing of path params 2016-03-07 17:12:05 -07:00
Joakim Erdfelt 2cc50ed925 Issue #316 - Add *.chm mimetype mapping 2016-03-07 16:32:36 -07:00
Joakim Erdfelt da6be3ed7a Fixing javadoc 2016-03-07 10:24:57 -07:00
Simone Bordet 5fa6bf4c10 Merged branch 'jetty-9.3.x' into 'master'. 2016-03-05 14:59:21 +01:00
Greg Wilkins 10bd934476 Issue #346 HttpParser RFC2616 Compliance mode
Empty header values returned as "" in all compliance modes
2016-03-05 14:26:47 +01:00
Greg Wilkins 692aae0d3e Merge remote-tracking branch 'origin/jetty-9.3.x' 2016-03-05 11:06:34 +01:00
Greg Wilkins d1fc5eb67d Revert "Issue #346 HttpParser RFC2616 Compliance mode"
This reverts commit 58e5a54ab6.
RFC7430 allows empty header values
2016-03-05 11:03:32 +01:00
Greg Wilkins 58e5a54ab6 Issue #346 HttpParser RFC2616 Compliance mode
Ignore headers without values.
2016-03-05 11:03:11 +01:00
Greg Wilkins f4453ba5e0 Issue #346 HttpParser RFC2616 Compliance mode
Headers with no value return "" in <= RFC2616 mode
2016-03-05 09:21:34 +01:00
Greg Wilkins ebfb45dd70 Merge remote-tracking branch 'origin/jetty-9.3.x' 2016-02-24 15:18:47 +01:00
Greg Wilkins 1eeecdaee5 Issue #355 Improve close behaviour
Inverted the logic of the handling of exceptions thrown in CommitCallback.
Now only if a BadMessageException is throw do we attempt to write a 500 response.
All other exceptions just abort the connection
2016-02-24 13:36:06 +01:00
Greg Wilkins aa7fd02c5f Merge remote-tracking branch 'origin/jetty-9.3.x' 2016-02-23 18:31:15 +01:00
Greg Wilkins c3a54e9d0b fixed javadoc 2016-02-23 18:23:23 +01:00
Greg Wilkins 3c671aa8b6 Issue #346 HttpParser RFC2616 Compliance mode
Reimplmented HTTP/0.9 support in RFC2616 compliance mode
2016-02-23 17:33:53 +01:00
Simone Bordet 51009208d4 Merged branch 'jetty-9.3.x' into 'master'. 2016-02-19 13:23:34 +01:00
Greg Wilkins 27585d923c Issue #346 HttpParser RFC2616 Compliance mode
removed System Property for compliance
2016-02-19 12:14:06 +01:00
Greg Wilkins 72edbe5cea Issue #346 HttpParser RFC2616 Compliance mode
Added RFC2616 compliance mode that allows wrapped headers
2016-02-19 11:22:52 +01:00
Greg Wilkins d0541e58da Merge remote-tracking branch 'origin/jetty-9.3.x' 2016-02-16 10:11:47 +01:00
Greg Wilkins fd5b3a8062 487714 - Avoid NPE in close race for async write
The race has not been solved, as with lock-free style it is difficult to prevent a
close racing with a write in progress. Instead, the code has been made more
resiliant to such state changes and exceptions thrown are converted to IOExceptions.
2016-02-16 10:06:25 +01:00
Simone Bordet e91d93b85c Merged branch 'jetty-9.3.x' into 'master'. 2016-02-15 20:56:01 +01:00
Simone Bordet 26b6c848f3 Issue #80 (Spin loop in case of HTTP/2 prefaces without H2C).
Fixed by changing the state of the parser before calling the parser
handler callbacks, and by closing the parser if the upgrade to HTTP/2
is not successful.
2016-02-15 20:50:22 +01:00
Greg Wilkins 6a9002991a Issue #79 Parse HTTP request target starting with //
Added a new parseRequestTarget method
2016-02-15 19:40:10 +01:00
Joakim Erdfelt f98dde5e5b Updating to version 9.2.16-SNAPSHOT 2016-02-10 15:36:41 -07:00
Joakim Erdfelt 9b6890d3c1 Updating to version 9.2.15.v20160210 2016-02-10 14:49:12 -07:00
Simone Bordet 2ac465a343 Merged branch 'jetty-9.3.x' into 'master'. 2016-02-09 18:14:07 +01:00
Simone Bordet 6306f06e2f Merged branch 'jetty-9.2.x' into 'jetty-9.3.x'. 2016-02-09 18:12:04 +01:00
Simone Bordet 145e4bee71 487511 - Jetty HTTP won't work on turkish systems.
Fixed usages of toLowerCase() and toUpperCase() to use Locale.ENGLISH.
2016-02-09 17:50:26 +01:00
Greg Wilkins df79ad689a Merge remote-tracking branch 'origin/jetty-9.3.x' 2016-02-04 07:00:13 +01:00
Greg Wilkins f2e71a2dde 485306 - HttpParser (HttpURI) mistaking basic auth password as a port number
Added support for a password and a getUser() method
2016-02-03 14:28:08 +01:00
Joakim Erdfelt e0ce545ad7 Updating to version 9.3.8-SNAPSHOT 2016-01-15 17:15:14 -07:00
Joakim Erdfelt c0b191119b Updating to version 9.3.7.v20160115 2016-01-15 16:40:15 -07:00
Greg Wilkins 7925697b25 484349 - Optimized PathMappings lookup 2016-01-14 14:27:24 +11:00
Joakim Erdfelt b7f9c9aca9 Updating to version 9.3.7-SNAPSHOT 2016-01-13 08:21:01 -07:00
Joakim Erdfelt 21ca3f6690 Updating to version 9.3.7.RC1 2016-01-13 07:30:24 -07:00
Joakim Erdfelt ac24196b0d Happy New Year 2016 2016-01-04 14:34:20 -07:00
Joakim Erdfelt cd39fd84fe Happy New Year 2016 2016-01-04 14:31:22 -07:00
Joakim Erdfelt b5db18378d Happy New Year 2016 2016-01-04 14:21:26 -07:00
Greg Wilkins 50ff7ac7ce Merge remote-tracking branch 'origin/jetty-9.3.x' 2015-12-23 18:07:08 +11:00
Greg Wilkins 19d6e36ab9 484657 - Support HSTS rfc6797 2015-12-23 17:15:24 +11:00
Greg Wilkins 133e9e054d Merge remote-tracking branch 'origin/jetty-9.3.x'
Conflicts:
	jetty-security/src/main/java/org/eclipse/jetty/security/HashLoginService.java
2015-12-18 12:50:19 +11:00
Greg Wilkins 5cd676581c 484622 - Improve handling of Direct and Mapped buffers for static content
ResourceHttpContent now applies a maxBufferSize that is passed through the call to getContent
ResourceCache now accounts for the exact memory usage of content, which may have an indirect
buffer plus either a direct or mapped buffer.  Thus content size may be 0, 1 or 2 times the
file size.

Some more limited unit tests
2015-12-18 12:36:27 +11:00
Joakim Erdfelt 31cd3fee84 Merge branch 'jetty-9.3.x'
Conflicts:
	jetty-http/src/main/java/org/eclipse/jetty/http/PathMap.java
	jetty-http/src/main/java/org/eclipse/jetty/http/pathmap/PathSpecSet.java
	jetty-server/src/main/java/org/eclipse/jetty/server/handler/gzip/GzipHandler.java
	jetty-util/src/main/java/org/eclipse/jetty/util/IncludeExclude.java
	jetty-util/src/main/java/org/eclipse/jetty/util/RegexSet.java
2015-12-17 12:51:57 -07:00
Joakim Erdfelt 3bec195d08 484440 - Swap WebSocket PathMappings for new jetty-http PathMappings
+ Deprecated jetty-server ServletPathSpec and RegexPathSpec
+ Moved all other code to using new jetty-http versions
2015-12-17 11:42:27 -07:00
Joakim Erdfelt 7c5bec1b48 Using Java 8 Predicate Function
+ Removing jetty-util (java 7) holdover Predicate.java
+ Converting use to (java 8) java.util.function.Predicate
2015-12-17 10:15:57 -07:00
Joakim Erdfelt 343aa066ae Merge branch 'jetty-9.2.x' into jetty-9.3.x
Conflicts:
	jetty-http/src/main/java/org/eclipse/jetty/http/HttpGenerator.java
	jetty-http/src/main/java/org/eclipse/jetty/http/PathMap.java
	jetty-maven-plugin/src/main/java/org/eclipse/jetty/maven/plugin/AbstractJettyMojo.java
	jetty-maven-plugin/src/main/java/org/eclipse/jetty/maven/plugin/WarPluginInfo.java
	jetty-rhttp/jetty-rhttp-gateway/src/main/java/org/eclipse/jetty/rhttp/gateway/Main.java
	jetty-security/src/main/java/org/eclipse/jetty/security/PropertyUserStore.java
	jetty-servlets/src/main/java/org/eclipse/jetty/servlets/CrossOriginFilter.java
	jetty-servlets/src/main/java/org/eclipse/jetty/servlets/GzipFilter.java
	jetty-servlets/src/main/java/org/eclipse/jetty/servlets/gzip/CompressedResponseWrapper.java
	jetty-servlets/src/main/java/org/eclipse/jetty/servlets/gzip/GzipHandler.java
	jetty-util/src/main/java/org/eclipse/jetty/util/IncludeExclude.java
	jetty-util/src/main/java/org/eclipse/jetty/util/RegexSet.java
	jetty-util/src/test/java/org/eclipse/jetty/util/IncludeExcludeTest.java
	jetty-util/src/test/java/org/eclipse/jetty/util/ssl/SslContextFactoryTest.java
2015-12-16 12:56:13 -07:00
Joakim Erdfelt e6901b2646 484349 - Promote WebSocket PathMappings / PathSpec to Jetty Http
+ More testing, more improvements
2015-12-16 11:06:17 -07:00
Joakim Erdfelt 4f9d785b46 Revert "482042 - New API, Allow customization of ServletHandler path mapping"
This reverts commit 77d4b54082.
2015-12-16 10:08:02 -07:00
Joakim Erdfelt 6e0ad429d9 484350 - Allow GzipHandler path include/exclude to use regex
+ Overhauled IncludeExclude to use java 8 predicate
+ Introduced PathSpecSet to standardize path IncludeExclude
+ GzipHandler now uses PathSpecSet for paths

Conflicts:
	jetty-http/src/main/java/org/eclipse/jetty/http/PathMap.java
	jetty-servlets/src/main/java/org/eclipse/jetty/servlets/gzip/GzipHandler.java
	jetty-util/src/main/java/org/eclipse/jetty/util/IncludeExclude.java
	jetty-util/src/main/java/org/eclipse/jetty/util/RegexSet.java
2015-12-15 15:23:29 -07:00
Joakim Erdfelt 77d4b54082 482042 - New API, Allow customization of ServletHandler path mapping
+ Swapping out PathMap for PathMappings in ServletHandler

Conflicts:
	jetty-servlet/src/main/java/org/eclipse/jetty/servlet/DefaultServlet.java
	jetty-servlet/src/main/java/org/eclipse/jetty/servlet/ServletHandler.java
2015-12-15 14:41:37 -07:00
Joakim Erdfelt a52a182369 484349 - Promote WebSocket PathMappings / PathSpec to Jetty Http
+ Moving PathMappings from jetty-websocket to jetty-http
 + Renaming WebSocketPathSpec to UriTemplatePathSpec
 + Improving implementation with knowledge gained from PathMap
   and PathMapTest cases.
2015-12-15 13:57:01 -07:00
Joakim Erdfelt b6df9508c6 484350 - Allow GzipHandler path include/exclude to use regex
+ Overhauled IncludeExclude to use java 8 predicate
+ Introduced PathSpecSet to standardize path IncludeExclude
+ GzipHandler now uses PathSpecSet for paths
2015-12-14 14:58:12 -07:00
Joakim Erdfelt 1df5a05ee1 482042 - New API, Allow customization of ServletHandler path mapping
+ Swapping out PathMap for PathMappings in ServletHandler
2015-12-14 11:22:24 -07:00
Joakim Erdfelt dddba5b004 484349 - Promote WebSocket PathMappings / PathSpec to Jetty Http
+ Moving PathMappings from jetty-websocket to jetty-http
 + Renaming WebSocketPathSpec to UriTemplatePathSpec
 + Improving implementation with knowledge gained from PathMap
   and PathMapTest cases.
2015-12-14 11:17:31 -07:00
Joakim Erdfelt 5e3fbbccd0 Backporting GzipHandler's IncludeExclude configs 2015-12-08 15:51:25 -07:00
Greg Wilkins 3527c6a71b StringUtil.csvSplit(String)
Conflicts:
	jetty-maven-plugin/src/main/java/org/eclipse/jetty/maven/plugin/AbstractJettyMojo.java
	jetty-security/src/main/java/org/eclipse/jetty/security/PropertyUserStore.java
	jetty-server/src/main/java/org/eclipse/jetty/server/handler/ContextHandler.java
	jetty-servlets/src/main/java/org/eclipse/jetty/servlets/PushCacheFilter.java
	jetty-util/src/main/java/org/eclipse/jetty/util/StringUtil.java
	jetty-xml/src/main/java/org/eclipse/jetty/xml/XmlConfiguration.java
2015-12-08 14:54:33 -07:00
Greg Wilkins 5e40bf29aa Merge remote-tracking branch 'origin/jetty-9.3.x' 2015-12-02 11:16:17 +11:00
Greg Wilkins 45350b62c1 483344 - text/csv Mime Type For CSV in mime properties File 2015-12-02 11:11:39 +11:00
Greg Wilkins 18a3af1951 Merge remote-tracking branch 'origin/jetty-9.3.x' 2015-11-26 11:40:37 +11:00
Greg Wilkins ee9c57e3ea 482670 - HttpURI wrongly parser URI paths starting with /@ 2015-11-26 11:39:55 +11:00
Greg Wilkins ac124094dd Merge remote-tracking branch 'origin/jetty-9.3.x' 2015-11-26 07:08:06 +11:00
Greg Wilkins a2c057892e 483039 - HTTP2 Upgrade case sensitivity on Connection header 2015-11-26 07:06:38 +11:00
Simone Bordet 50041395f9 Merged branch 'jetty-9.3.x' into 'master'. 2015-11-25 14:00:19 +01:00
Greg Wilkins 204591ce82 482855 - Content-Length omitted for POST requests with empty body
Removed HTTP 0.9 support
A few code simplifications
Fixed clients relying on Content-Length headers being ignored
2015-11-25 20:50:59 +11:00
Greg Wilkins ab93529f6d 482855 - Content-Length omitted for POST requests with empty body
fixed merge
2015-11-25 20:50:59 +11:00
Greg Wilkins e78fcb59a4 482855 - Content-Length omitted for POST requests with empty body
An ineligant fix. Will improve in 9.3.x/9.4.x without HTTP 0.9 support.
2015-11-25 20:50:59 +11:00
Greg Wilkins aa85d85510 482855 - Content-Length omitted for POST requests with empty body
An ineligant fix. Will improve in 9.3.x/9.4.x without HTTP 0.9 support.
2015-11-25 14:15:14 +11:00
Joakim Erdfelt edf686fe0a Updating to version 9.3.7-SNAPSHOT 2015-11-06 12:13:00 -07:00
Joakim Erdfelt d737e1c638 Updating to version 9.3.6.v20151106 2015-11-06 11:09:32 -07:00
Joakim Erdfelt ec8f8d3e4f Updating to version 9.2.15-SNAPSHOT 2015-11-06 11:06:48 -07:00
Joakim Erdfelt ecba378f5c Updating to version 9.2.14.v20151106 2015-11-06 10:32:14 -07:00
Greg Wilkins 36de309e9f 480162 - Continuations behavior differences due to HttpURI behavior
Cleaned up handling of original URI
2015-10-28 17:33:05 +11:00
Greg Wilkins 7415163f59 Merge remote-tracking branch 'origin/jetty-9.3.x' 2015-10-21 17:47:58 +11:00
Greg Wilkins c156f6593c 480162 - Continuations behavior differences due to HttpURI behavior
reverted 3e460dd219
added test clarifications
2015-10-21 15:18:12 +11:00
Joakim Erdfelt cce79f9822 Adding ORIGIN header 2015-10-15 14:58:56 -07:00
Joakim Erdfelt 45de46191b Adding WebSocket headers to HttpHeader 2015-10-14 11:16:55 -07:00
Joakim Erdfelt dde32787c4 Updating to version 9.3.6-SNAPSHOT 2015-10-12 15:47:37 -07:00
Joakim Erdfelt 29722bd880 Updating to version 9.3.5.v20151012 2015-10-12 15:10:39 -07:00
Joakim Erdfelt 2cce7510e1 Updating to 9.3.5-SNAPSHOT 2015-10-08 17:49:09 -07:00
Joakim Erdfelt 9cf0e34a1d Updating to version 9.4.0-SNAPSHOT 2015-10-07 15:41:32 -07:00
Joakim Erdfelt 37296bec3c Updating to version 9.3.4.v20151007 2015-10-07 14:58:38 -07:00
Simone Bordet 3201d0acd2 477878 - HttpClient over HTTP/2 doesn't close upload stream.
Clarified the difference between last and consumed in HttpContent.
Fixed HTTP/2 transport to behave correctly in case of last content.
2015-09-25 19:31:40 +02:00
Simone Bordet 8c21871cf0 478021 - Client sending Connection: close does not shutdown output.
Fixed behavior of HttpGenerator to change its persistent also for
requests.

Reworked HttpSenderOverHTTP to send headers via IteratingCallback, so
that multiple generation steps can be made to produce SHUTDOWN_OUT.
2015-09-23 22:23:37 +02:00
Greg Wilkins 99f4ed7352 477737 Improve handling of etags with dynamic and static gzip 2015-09-18 12:30:02 +10:00
Greg Wilkins 2d88fdf386 477278 Refactored DefaultServlet for cached Gzip & Etags
Refactored the DefaultServlet to better handle static gzipped files with etags in the cache.
Required a simplification of always having a HttpContent rather than the prior situation of
having either a Resource or a HttpContent.  So introduced a HttpContent.Factory, of which
the ResourceCache is the normal implementation, but there is also now a ResourceContentFactory
that creates content when there is no cache.

The Gzip resource is now associated with the normal resource, so less lookups are needed.
This also give scope for caching dynamic gzipping in the future.

The GzipHttpContent class has been introduced to send content with the headers of the
uncompress, but content of the compressed resource.
2015-09-17 18:19:58 +10:00