Commit Graph

4363 Commits

Author SHA1 Message Date
Simone Bordet d9855fb1bc Fixes #3311 - Ability to serve HTTP and HTTPS from the same port.
Do not assume that the read from the network produced more than 1 byte.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-02-01 09:14:32 +01:00
Simone Bordet 5061a5ca30 Fixes #3311 - Ability to serve HTTP and HTTPS from the same port.
Fixed handling of upgradeTo() in case of null buffers.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-01-31 17:15:07 +01:00
Simone Bordet ccda1ee5f6 Fixes #3311 - Ability to serve HTTP and HTTPS from the same port.
Introduced PlainOrSslConnectionFactory, to "sniff" the first bytes
on a connection and upgrade to SSL (if the bytes are TLS bytes), or
upgrade to a specific, configured, protocol.

Added also the ability to fail the upgrade in case of a `http`
request to a `https` port and write a minimal response to the client.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-01-31 13:23:58 +01:00
Joakim Erdfelt c30c8d4339 Merge remote-tracking branch 'origin/jetty-10.0.x' into jetty-10.0.x-3162_jetty_servlet_api
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>

# Conflicts:
#	jetty-client/pom.xml
#	jetty-http/pom.xml
#	jetty-http2/http2-client/pom.xml
#	jetty-http2/http2-http-client-transport/pom.xml
#	jetty-http2/http2-server/pom.xml
#	jetty-osgi/test-jetty-osgi/pom.xml
#	jetty-osgi/test-jetty-osgi/src/test/config/etc/jetty-with-custom-class.xml
#	jetty-osgi/test-jetty-osgi/src/test/config/etc/jetty.xml
#	jetty-osgi/test-jetty-osgi/src/test/java/org/eclipse/jetty/osgi/test/TestJettyOSGiBootHTTP2Conscrypt.java
#	jetty-osgi/test-jetty-osgi/src/test/java/org/eclipse/jetty/osgi/test/TestJettyOSGiBootWithAnnotations.java
#	jetty-osgi/test-jetty-osgi/src/test/java/org/eclipse/jetty/osgi/test/TestJettyOSGiBootWithJavaxWebSocket.java
#	jetty-osgi/test-jetty-osgi/src/test/java/org/eclipse/jetty/osgi/test/TestJettyOSGiBootWithWebSocket.java
#	jetty-osgi/test-jetty-osgi/src/test/java/org/eclipse/jetty/osgi/test/TestOSGiUtil.java
#	jetty-quickstart/pom.xml
#	jetty-servlets/pom.xml
#	jetty-util/pom.xml
#	jetty-websocket/javax-websocket-client/pom.xml
#	jetty-websocket/javax-websocket-server/pom.xml
#	jetty-websocket/jetty-websocket-server/pom.xml
#	pom.xml
2019-01-30 11:56:58 -06:00
alexey.barsov edf74a6554 Issue #3302 Supporting host:ip in X-Forwarded-For
Signed-off-by: alexey.barsov <foster_licey_reg@mail.ru>
2019-01-30 11:11:44 +01:00
Jan Bartel e789cd6834 Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x 2019-01-30 14:26:52 +11:00
Jan Bartel 169d93e790
Jetty 9.4.x 3284 sessions and system clock jitter (#3296)
* Issue 3284 System clock jitter can affect session timers.

Signed-off-by: Jan Bartel <janb@webtide.com>
2019-01-30 14:02:35 +11:00
Simone Bordet e4d78608a7 Issue #3049 - Warn on common SslContextFactory problematic configurations.
Made default endpointIdentificationAlgorithm=HTTPS to avoid warnings
when SslContextFactory is used on a server.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-01-23 17:31:41 +01:00
Lachlan Roberts 2fc6185c29 Issue #3236 - fixed CustomRequestLogTest failure when JAVA_HOME not set
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-01-15 13:11:06 -06:00
Joakim Erdfelt 74df6bf1a9 Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>

# Conflicts:
#	jetty-maven-plugin/src/it/it-parent-pom/pom.xml
#	jetty-websocket/javax-websocket-server-impl/src/test/java/org/eclipse/jetty/websocket/jsr356/server/ConfiguratorTest.java
#	jetty-websocket/javax-websocket-server/src/main/java/org/eclipse/jetty/websocket/javax/server/JavaxWebSocketServerContainerInitializer.java
#	jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/WebSocketSession.java
#	jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/io/AbstractWebSocketConnection.java
#	jetty-websocket/websocket-core/src/main/java/org/eclipse/jetty/websocket/core/AbstractExtension.java
#	jetty-websocket/websocket-core/src/main/java/org/eclipse/jetty/websocket/core/internal/ExtensionStack.java
#	jetty-websocket/websocket-core/src/main/java/org/eclipse/jetty/websocket/core/internal/FrameFlusher.java
#	jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/browser/BrowserDebugTool.java
#	jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/browser/BrowserSocket.java
#	jetty-websocket/websocket-server/src/test/resources/browser-debug-tool/index.html
#	jetty-websocket/websocket-server/src/test/resources/browser-debug-tool/websocket.js
2019-01-11 12:11:38 -06:00
Joakim Erdfelt e9143725b0 Issue #3242 - Post-review cleanup of ProxyEndPoint
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-01-11 10:23:51 -06:00
Joakim Erdfelt aad5e97336 Issue #3242 - Relying on EndPoint.toString() for ProxyEndPoint.toString()
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-01-08 15:48:22 -06:00
Lachlan Roberts 07035b7376 Issue #3236 - fixed CustomRequestLogTest failure when JAVA_HOME not set
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-01-04 09:36:53 +11:00
olivier lamy 63f2023e05 happy new year!!
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2019-01-01 12:17:53 +10:00
Olivier Lamy 9b7afd8a03
Happy new year!! (#3232)
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2019-01-01 11:52:16 +10:00
olivier lamy 6ff23e296d Merge branch 'jetty-9.4.x' into jetty-10.0.x 2018-12-22 22:00:07 +10:00
Greg Wilkins 8f06fa8083 Issue #3207
updates after review

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-12-20 08:53:16 +11:00
Greg Wilkins 225760c2de Issue #3207
Fix #3207 by providing async compliant print methods

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-12-19 13:57:58 +11:00
Jan Bartel 4abc4f8dd4 Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x 2018-12-19 10:54:41 +11:00
Greg Wilkins 503bd71d4c Issue #3202
Handle async cross context session completion
2018-12-18 16:00:46 +11:00
Greg Wilkins 06bbab50f9 Issue #3202
Handle async cross context session completion
2018-12-18 14:07:16 +11:00
Jan Bartel 34b6ecec6c Issue #3202 Ensure sessions created during async are cleaned up.
Signed-off-by: Jan Bartel <janb@webtide.com>
2018-12-18 09:32:12 +11:00
Greg Wilkins fb06b82172 Issue #3030 ignore identity content encoding during parameter extraction
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-12-13 13:42:08 +11:00
Bjørn Christian Seime 71c0e47446 Change access of LowResourceCheck to public
This interface is currently package-private while it's in the
signature of several public methods (e.g. addLowResourceCheck, getLowResourceChecks)

Signed-off-by: Bjørn Christian Seime <bjorncs@yahoo-inc.com>
2018-12-10 13:39:29 +01:00
Greg Wilkins 18b0ad842a
Merge pull request #3160 from eclipse/jetty-10.0.x-113-customrequestlog
Issue #113 CustomRequestLog as default in jetty-10
2018-12-01 16:32:45 +01:00
Greg Wilkins 81ca90b1f6 Issue #113
Deletes the deprecated NcsaRequestLog classes
Updates modules to use CustomRequestLog by default
Move jetty-customrequestlog.xml from home to base

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-12-01 16:31:23 +01:00
Simone Bordet 707c9ec322 Issue #3162 - Use Jetty specific Servlet API jar.
Future proof reference of the jetty-servlet-api.jar.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-11-29 17:29:08 +01:00
Simone Bordet bfa2dbf68c Issue #3162 - Use Jetty specific Servlet API jar.
* Updated module-info.java to reference the "jetty.servlet.api" module.
* Updated POMs to reference the o.e.j.toolchain:jetty-servlet-api artifact.
* Removed references to jetty-schemas.jar.
* Updated attribute "org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern"
  to match the new Jetty Servlet API jar.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-11-29 16:51:29 +01:00
Simone Bordet 99d1983ebd Issue #3011 - Move HttpCompliance to HttpConfiguration.
Fixed jetty-https.xml.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-11-29 16:41:25 +01:00
Greg Wilkins aeb200e583 Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x 2018-11-29 12:10:58 +01:00
Greg Wilkins 132aef4420 Issue #113
default to extended format

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-11-29 12:10:18 +01:00
Greg Wilkins 0d4e20b964 Issue #113
Fixed merge to 10
2018-11-29 11:08:55 +01:00
Greg Wilkins bbc7037171 Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x 2018-11-29 11:06:49 +01:00
Greg Wilkins 7742650fa5 Issue #113
Fixed property names

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-11-29 10:55:00 +01:00
Greg Wilkins fc39e96653 Issue #113
Updated customrequestlog module defaults for timezone

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-11-29 10:34:42 +01:00
Greg Wilkins e7d4f55891 Issue #113
Use CustomRequestLog in examples.
Convenience constructors

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-11-29 10:13:12 +01:00
Greg Wilkins 720e561008 Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x 2018-11-29 09:32:50 +01:00
Greg Wilkins bda9307028
Merge pull request #3144 from lachlan-roberts/jetty-9.4.x
Issue #113 - CustomRequestLog
2018-11-29 09:29:43 +01:00
Lachlan Roberts 472d7a1529 Issue #113 - latency test failures fixed
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-11-28 22:28:40 +01:00
Lachlan Roberts c2749ff5e3 Issue #113 - fixed documentation inconsistency
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-11-28 16:22:37 +01:00
Lachlan Roberts e58fd93742 Issue #113 - StacklessLogging for NcsaRequestLogTest expected exceptions
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-11-28 16:05:03 +01:00
Lachlan Roberts 982895719c Issue #113 - changes from review and bug fixes
%t now takes in locale and timezone in the format string argument
instead of getting it from the setters on the CustomRequestLog class

fixed issue with multiline format strings

requestLog writers are now managed objects

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-11-28 14:58:28 +01:00
Lachlan Roberts 63aa9ce97d Issue #113 - problems with latency tests and request handler name
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-11-28 10:52:17 +01:00
Lachlan Roberts 8aa3655c55 Issue #113 - fix to failing tests
removed tests for %B and %b which have been removed in favor of %O
adjusted the NcsaRequestLogTest to only test ExtendedNCSA format

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-11-28 09:26:55 +01:00
Lachlan Roberts b97c80b3c1 Issue #113 - testing of logConnectionStatus implemented
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-11-27 14:26:31 +01:00
Lachlan Roberts b35df419bb Issue #113 - reformat, javadoc update and changes after review
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-11-27 14:26:12 +01:00
Lachlan Roberts 2cd579353c Issue #113 - fix javadoc errors
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-11-26 14:12:16 +01:00
Greg Wilkins 1e15e3e941 Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x 2018-11-24 16:49:40 +01:00
Lachlan Roberts 7c0ea57923 Issue #113 - CustomRequestLog terminology refactor
replaced terminology for addresses and ports to use
client and server referring to the logical connection and
local and remote referring to the physical connection to the first hop

finished implementing tests in CustomRequestLogTest otherwise
disabled tests which will be verified manually instead

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-11-24 10:28:57 +01:00
Greg Wilkins 97cb063a57 Merge branch 'jetty-9.4.x' of github.com:eclipse/jetty.project into jetty-9.4.x 2018-11-23 17:01:39 +01:00
Greg Wilkins 92317a7bb4 Issue #3132 improve dump readability
fixed tests

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-11-23 16:54:36 +01:00
Jan Bartel 506e4dc682 Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x 2018-11-23 16:45:32 +01:00
Jan Bartel 4e672c6b27
Issue #2646 - Better handle concurrent calls to change session id and invalidate within a context (#2670)
* Issue #2646 handle concurrent invalidate/changeid calls

Signed-off-by: Jan Bartel <janb@webtide.com>
2018-11-23 16:15:27 +01:00
Lachlan Roberts 771f120508 Issue #113 - customrequestlog module
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-11-22 20:01:19 +01:00
Simone Bordet 5f972b451c
Jetty 10.0.x 2978 add module info (#3120)
Fixes #2978 - Add module-info to relevant Jetty modules.

Added module-info.java for Jetty modules that are not test modules.
Moved jetty-http test utility classes to new module "jetty-http-tools".
Removed generation of test-jar from websocket-core.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-11-22 12:37:35 +01:00
Lachlan Roberts 112d57f474 Issue #113 - CustomRequestLog
added missing copyright header in some new files

added CustomRequestLogTest in jetty-servlet to test things like
logFilename and logRequestHandler

the log strings produced do no longer contain a trailing newline

implemented more tests in CustomRequestLogTest
and finished implementing some of the logging in CustomRequestLog

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-11-22 10:32:22 +01:00
Greg Wilkins 7dcc9d2829 Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x 2018-11-20 14:10:52 +01:00
Greg Wilkins 8c4ee8496f
Jetty 9.4.x 3038 ssl connection leak (#3121)
Issue #3038 - SSL connection leak.

Fixed SSL spin caused when fill had NEED_WRAP, but a flush/wrap
produced 0 bytes and stayed in NEED_WRAP

Removed check of isInputShutdown prior to filling that allowed EOF to
overtake data already read.

Fix for leak by shutting down output in HttpConnection if
filled -1 and the HttpChannelState was no longer processing
current request.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-11-20 13:53:42 +01:00
Lachlan Roberts 6040bd3497 Issue #113 - AbstractNCSARequestLog no longer abstract and test cleanups
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-11-19 15:05:47 +01:00
Lachlan Roberts cc1ae54feb Issue #113 - Parameterized RequestLogTest to test NCSA format string
renamed to NcsaRequestLogTest as is only testing NCSA log formats

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-11-19 14:53:48 +01:00
Lachlan Roberts e4d30b367c Issue #113 - Added Request Log Writers
Introduced the RequestLog.Writer where a RequestLog takes a writer
which manages what to do with the log strings produced by the RequestLog

deprecated the NCSA and SLF4J RequestLogs in favor of CustomRequestLog

Implemented more format codes in CustomRequestLog

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-11-19 13:58:53 +01:00
Greg Wilkins 7dd3cfffe6 Issue #113 channel persistance and completed getters
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-11-15 14:36:40 +01:00
Joakim Erdfelt 29fd18e046 Updating to version 9.4.15-SNAPSHOT 2018-11-14 16:42:40 -06:00
Joakim Erdfelt c4550056e7 Updating to version 9.4.14.v20181114 2018-11-14 15:19:10 -06:00
Lachlan Roberts 7ca6577ac6 Issue 113 - CustomRequestLog
fixed parsing issues for the format string by parsing left to right
and reversing the list of parsed tokens

reduced to parsing to single regex expression

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-11-13 14:51:06 +01:00
Joakim Erdfelt a903017f5f Updating to version 9.4.14-SNAPSHOT 2018-11-11 21:06:50 -06:00
Joakim Erdfelt 49123a3313 Updating to version 9.4.13.v20181111 2018-11-11 20:02:42 -06:00
Simone Bordet 422f4d9341 Issue #3085 - Restore Dump methods for backwards compatibility reasons.
Removed dead code.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-11-09 18:53:50 +01:00
Simone Bordet 2fd6266f62 Merged branch 'jetty-9.4.x' into 'jetty-10.0.x'. 2018-11-09 18:25:03 +01:00
Simone Bordet f814354bb5 Issue #3085 - Restore Dump methods for backwards compatibility reasons.
Restored removed methods to maintain backwards compatibility.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-11-09 17:47:46 +01:00
Lachlan Roberts 1e50b371fe Issue 113 - CustomRequestLog
javadoc cleanup

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-11-08 18:39:29 +01:00
Lachlan Roberts 0d8369c5c1 Issue 113 - CustomRequestLog
added test methods for all format codes

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-11-08 18:07:53 +01:00
Lachlan Roberts 3ce7016a35 Issue 113 - CustomRequestLog
added methods for each of the format codes described in javadoc

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-11-08 11:17:59 +01:00
Greg Wilkins d81c0cad24 Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-11-07 14:06:21 +01:00
Greg Wilkins cf2de4411c
Issue #3041 separate CookieCompliance for parsing and generation (#3048)
* Issue #3041 separate CookieCompliance for parsing and generation

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* improved documentation

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* use only getters

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Rename setters to avoid setSetXxxx

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-11-07 10:03:18 +01:00
Lachlan Roberts 22e7679dd6 Issue 113 - CustomRequestLog
changed the log type to include the response

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-11-06 12:21:30 +01:00
Lachlan Roberts 4be4b4e7b4 Issue #113 - CustomRequestLog
update logHandle directly rather than creating list of tokens

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-11-06 12:16:22 +01:00
Lachlan Roberts 012d412ccb Issue #113 - CustomRequestLog
javadoc detailing the custom log formats

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-11-06 11:48:08 +01:00
Lachlan Roberts 557f40f41f Issue #113 - CustomRequestLog
created new CustomRequestLog class

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-11-06 11:46:26 +01:00
Jan Bartel 5f94f249a7 Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x 2018-11-06 10:29:10 +01:00
Jan Bartel 871f73cdf6
Jetty 9.4.x 2932 switchable classloader for session attribute values (#2964) 2018-11-06 10:03:48 +01:00
Joakim Erdfelt 0912c58cdb Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x 2018-11-02 11:07:39 -05:00
Greg Wilkins 3995cd2ec0
Issue #3023 redirect to / when pathInfoOnly (#3047)
Issue #3023 redirect to / when pathInfoOnly (#3047)
2018-11-02 16:38:43 +01:00
Greg Wilkins 9003a0fd69
Jetty 10.0.x websocket refactor (#3055)
* Adding more todos
* More websocket test updates
* Adding more information to exception about mismatched hash
* AcceptHash improved testing
* Prevent duplicate request headers
* Removing ability to use LocalFuzzer entirely (until its fixed)
* JSR356 HandshakeResponse header modifications are now allowed during Configurator
* Correcting MessageSink creation
* Using proper sub-protocol
* Metadata remembers OnMessage.maxMessageSize now
* Minor test updates
* Issue #2172 - Fixing JSR-356 Decoder discovery and OnMessage wiring
* More websocket test updates
* Update for null/empty payload
* Partial String Message Sink fix
* More websocket fixes around InputStream handling
* Moving proposed Abstract FrameHandler hierarchy into core main
* More testing fixes, along with a change to use the new core Abstract*FrameHandler
* Adding WebSocket URI validation
* Updating copy found in other API with improvements made in first API.
* More websocket test updates
* Fixing compilation
* WebSocket test fixes
* Fixing ContinuationTest assertions
* fixed package
* Added some better examples of QuotedCSV
I think this test is trying to use QuotedCSV in the wrong way, as it often is offering values when it should be testing parameters.
I have added some examples to show that QuotedCSV is capable of handling the quotes, spaces and embedded commas of the tests, but only
for parameters and not for values.   The question is, is this sufficient for websocket?
* Improve close handling
The handling of a Close Frame may close the endpoint, so parsing should not continue
* moved old AbstractFrameHandler to test
* implement ingoing and outgoing frame sequence checking
* More work on javax.websocket parameterized server
* Bumping up pom plugin versions to jetty-9.4.x standards
* Merging up Jenkinsfile to attempt to fix CI build issues
* JSR356 @PathParam testing
* More WebSocket testing updates
* More WebSocket testing updates
* WebSocket Idle Timeout from FrameHandler specific policy
* WebSocket/JSR Pong support
* WebSocket/JSR Correcting MessageHandler.Whole<PongMessage> handling
* URL Decode UriTemplatePathSpec values
* Fixing test expectations
* Fixing AbstractWholeMessageHandler buffer flip
* More websocket test fixes
* Updated ALPN version for JDK 8u181.
* Removing QuotedUtil from WebSocket-core
+ Moved to QuotedCSV for most usages
+ Introduced HeaderUtil to satisfy remaining use cases
* Review of HttpClient names and Thread names.
+ Javax WebSocket Server = "Javax-WebSocketServer@####"
+ Javax WebSocket Client = "Javax-WebSocketClient@####"
* added OpCodeTest.java
* Minor Frame cleanup
* MessageOS cleanup
* Made the OpCode of WebSocket Frame immutable.
Frames can no longer be set as a continuation and should now be copied using the ContinuationFrame constructor
DataFrames can no longer be created without one of the subclasses as the public constructor was removed in favour of newDataFrame method
* Chat test
* Work on Chat Test
Moved implementation of assertValid to WebSocketFrame
Removed getFinRsvOp
* removed constructors for DataFrame using a basedOn Frame
instead use constructors with opCode, payload and fin bit
* refactor of WebSocket Frames WIP
* WIP: resolved failing tests
* CloseStatus rework, now use CloseStatus.toFrame to create Close Frames
new DelegateFrame class which ReadOnlyFrame extends
trim utf8 byte array in CloseStatus to utf8 character boundaries only
* working on test to test socket io erros in websocket-core
* renaming for clarity
Gave up on maintaining old names, as this is a different package anyway so some adaption will be needed regardless.
* Moved AbstractFrameHandlers to common
Only have a AbstractTestFrameHandler in core
* Close uses CloseStatus
Reduced the parsing and generation of CloseStatus when closing
* merge
* work on WebSocketTest
* cleanup log
* wip
* files missing comment header
jetty-jmh was using 9.4.12-SNAPSHOT now using 10.0.0-SNAPSHOT
* thread names
* remove sequence check from parser
* minor cleanups
* Call frameHandler externally to parser
* OpCode.check now throws ProtocolException instead of returning boolean
changed ProtocolException messages in OpCode.check
* removed Frame.Type and use OpCode instead
separated out FrameValidation for parser into method in WebSocketChannel
* moved remaining frame validation checks into WebSocketChannel
* referenced counted buffer
* cleanups
* wip on demand side
* First attempt at demandable
* demand control
* clean up reference counting
* clean ups
* WebSocketServerTest
* wip
* fixed auto fragmentation
* simple demand test
* test demand and retain
* Added validation back into the Parser
split up validation in WSChannel into methods for incoming and outgoing
fixed various tests in websocket-core
* more tests
* fixed remaining tests failing due to the changes to frame validation
* cleanups
* more autobahn refixes
* adjust mask for auto fragments
* clear mask
* fully close on unrecoverable error and not wait for close response
* Removed the CoreFuzzer and ContinuationTest
These tests are now covered elsewhere.
* remove declared exception onClosed
* Test delay close
* Test handler close
* fixed test dependency
* moved the frame sequence check from OutgoingState from after the ExtensionStack to channel.sendFrame
changed error handling to fail the callback of invalid/outOfSequence frames
added WebSocket Close tests revealing some problems with demand in state ICLOSE
* cleanup
* timing issues with WebSocketCloseTest
* test cleanups
* Cancel demand on close
* removed frame validation from generator
* finished close testing
* Issue #2901 - Moving Http Upgrader to Http Conversation
+ Solves for Authentication and Redirect
* changes from #2902 to jetty-10.0.x
* Validation Extension
introduced a ValidationExtension to do frame validation in the ExtensionStack
added the WebSocketChannel to ExtensionStack.connect to set it on the Extensions
* added parameters for ValidationExtension to choose what to validate
* ValidationExtension Cleanup
ValidationExtension now uses the Validation methods from its WebSocketChannel
simplified the parameter passing to the ValidationExtension
* core cleanup
* Fixed intermittent test failures
* clean up duplicates and imports
* simplified package structure
* many cleanups, simplifications and duplication removal
* cleanup
* added utf8 validation for text frames into ValidationExtension
added tests for utf8 validation
* create ValidationExtensionTest
* cleanup
* merge with jetty-10
update websocket to junit5
* fix to autobahn client report directory
* Fixes and cleanup
Fixed initial buffer too large for websocket buffer
less verbose debug
better debug
* Removed behavior from policy
* cleanup after merge from hell
* bug fixes and cleanups
* refactor packages with JPMS in mind
* unit test for TextMessageHandler
* cleanups
* more cleanups
* provided client/server dependencies
* fixed bad refactor
* use lambdas for TextMessageHandler
* cleanup
* cleanup
* cleanups
* cleanup of websocket-common framehandlers
* reverting to jetty websocket api from 9.4
* better chat
* renamed websocket common to util
* save wip on jetty-websocket-tests
* giving up on jetty-websocket-tests as mostly duplicated tests
* renamed websocket-util back to websocket-common
* moved InvalidWebSocketException to javax common
* reworked TextMessageHandler to MessageHandler
now handles binary messages as well
* implemented getByteBufferPool in remaining DummyChannel classes
* Moved the abstract Frame and Message handlers out of websocket-common
* replaced usages of AbstractWholeMessageHandler with CoreMessageHandler
renamed MessageHandler to CoreMessageHandler
* removed AbstractFrameTypeHandler
* cleanup
* jetty-websocket-common passing tests without websocket-common dependency
* fixed compile errors
* renamed MessageHandler
* Removing reference to websocket-server (no longer exists)
* Removing, Extensions now exist in websocket-core
* Do not append an empty ByteBuffer
* NPE Fix for empty/unused UTF-8 String Builder
* NPE Fix for SendPartialBinaryFrameHandler test
* Punching holes in WebAppContext needed for JSR356 use
* Updating "9.x.x" to "10.x.x"
* Removing Bad URI test case that is ignored
* Fixing test expectation now that we moved to QuotedCSV
* Adding TODO about onOpen failure requiring onError + onClose.
* Throwing JSR356 DeploymentException on addEndpoint() failure
* Test cleanup (for better error messages)
* Adding some comments to explain wrapNonVoidReturnType()
* cleanup methodHandle return type filtering
* test fixes
* Fix change return type to Void
* Fixed test by wiring up MessageHandler
* test cleanups
removed changeReturnType for MethodHandle as filterReturnValue already changes to return type of the filter
* fixed MessageReceivingTest.testPartialBinaryFrameHandler
* Core BatchMode replaced by boolean
* fixed LargeContainerTest.testEcho by allowing the policy to be set on the WSServer as an attribute
* acquire batchBuffer before calculating batchSpace in FrameFlusher
* Deprecated WebSocketPolicy
* Fixing MessageReceivingTest
* Refactoring out websocket-servlet
+ WebSocketPolicy removed from websocket-servlet
+ websocket-common is removed
+ Migrating back up to APIs
* WIP removing core policy
* added missing copyright headers
* customize client session
* customize cleanup
* wip
* wip
* Removing WebSocketPolicy usage within websocket-core
* Allowing DummyCoreSession to have a Behavior
* Removing core WebSocketPolicy.clonePolicy() - no longer used
* Jetty Native WebSocket now compiles / tests
* Remember WebSocketServletFactoryImpl as Context Attribute
* JSR356 codebase now compiles
* updated websocket servlets
* fix handling for no max message size
* Fixed LargeContainerTest.testEcho
Changed WebSocketServletFactoryImpl.defaultAutFragment to true
only check the incoming frame size if autoFragment is false
* Added WebSocketConstants to avoid duplicate default locations
* applications extensions discovered via headers
* fixed ConfiguratorTest.testNoExtensionsConfigurator
* cleaned up extension negotiation
* cleaned up extension negotiation
* cleanups
* Convert exceptions to API versions
* cleanup imports
* convert requestURI to a WebsocketURI in Negotiated
* fixed SessionTrackingTest
* moved session tracking management to be done by the JavaxWebSocketFrameHandler
* Cleanup dump for jdk11 classloaders
* fix to ConfiguratorTest
added the EchoSocket endpoint on the ServerContainer instead of using server.registerWebSocket
* Simplify websocket-servlet
    fixed jetty websocket chat example
    fixes for javax websocket chat example
    fixed Upgrade response header issues
    Set default configurations
    improved dump
    depends on javax server impl
    do not expose core classes
    fix javadoc
    removed FrameHandlerFactory self reference
* Removed -impl from javax client and server
* Fixed common tests for onClosed event
* Improve creation of JavaxWebSocketServerContainer
Better handling of executor and httpClient as managed beans
* Fixed MessageOutputStream using empty buffers and looping forever
no longer enforce maxTextMessageBufferSize on partial messages
* Updates after review
reintroduced WebSocketServletFactory
reverted other API changes
* Ignored TextStreamTest tests incorrectly assuming no frame fragmentation
When message fragmentation is implemented in PartialStringMessageSink
then update these tests to check on the server side for no buffers
larger than the maxTextMessageBufferSize.
* fixed check for previous WebsocketUpgrade filter
Disable the AltFilterTest until problems of the WebSocketUpgradeFilter
attributes on the ServletContext are fixed.
* fixed flaky SessionTrackingTest by waiting for Sessions to open
* remove payload length check for outgoing frames
fix bug sending frames after they have failed validation checks
* reverted maven coords for javax client and server
* updated to latest jetty-10 dump changes
* Fix to WebSocketUpgradeFilter Attributes on the ServletContext
Removed deprecated method
WebSocketUpgradeFilter.configureContext(ServletContext)
Changed return type of
WebSocketUpgradeFilter.configureContext(ServletContext) to void.
WebSocketUpgradeFilter.configureContext was checking the ServletContext
for a WebSocketUpgradeFilter set as an attribute before creating a new
one. The FilterHolder from web.xml is being set as an attribute in init
which is called which happens after configureContext.
So instead of checking the attribute in
WebSocketUpgradeFilter.configureContext, we are now searching through
the filters on the ServletHandler to see if a WebSocketUpgradeFilter
has been registered with the CONTEXT_ATTRIBUTE_KEY.
* cleanup and identifying problems with FrameHandlerMetadata
* properly cache Metadata and copy MessageMetadata
properly cache Metadata in the FrameHandlerFactory using the metadataMap
copy the MessageMetadata from Metadata to prevent mutating the MethodHandle
* added new WebSocketServerContainerExecutorTest
removed DelayedStartClientOnServerTest which doesnt seem to be a valid
test when executors are shared
removed last check for executor==null in JavaxWebSocketServerContainerInitializer
as the threadPool is always created in the server
* reformatted websocket code
* reformat code
* Rervert unnecessary changes from 10.0.x
* Rervert unnecessary changes from 10.0.x
* fix build issues testing Hazelcast sessions
* QuotesDecoderTest sessions not being closed
* Fixed CookiesTest
CookiesTest.testCookiesAreSentToClient was failing due to the
Assertion being caught and logged by the upgrade request
the response is now captured by a FuturePromise and the assertions are
done in the main test
the reason the assertion was failing was due to lowercase "set-cookie"
instead of "Set-Cookie"
* fixed maven coords
* javadoc fixes
* fixed javadoc
* revert maven artifact names
* cleanup after review

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-11-02 13:07:43 +01:00
olivier lamy b5d058d128 Merge branch 'jetty-9.4.x' into jetty-10.0.x 2018-11-02 19:27:14 +10:00
Greg Wilkins b69f8e4084
Issue #2886 Handle SNI with non SNI certificates (#2888)
* Issue #2886 Handle SNI with non SNI certificates

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Issue #2886 Single SNI with default certificate
2018-11-02 05:20:17 +01:00
Greg Wilkins bb045f641e
Issue #3049 Warn on common SslContext vulnerable configurations (#3050)
* Issue #3049 Warn on common SslContext vulnerable configurations

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Adding documentation notes for weak cipher warnings

Signed-off-by: WalkerWatch <ctwalker@gmail.com>

* Issue #3049 - SslContextFactory warnings on known bad config

+ Changes warnings from being a boolean on SslContextFactory
  to being a logger named
  "org.eclipse.jetty.util.ssl.SslContextFactory.config"

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>

* Issue #3049 - SslContextFactory warnings on known bad config

+ Cleanup based on review

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>

* Issue #3049 - SslContextFactory warnings on known bad config

+ Cleanup based on review

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2018-11-02 05:19:03 +01:00
Greg Wilkins 254dc88743 Merge branch 'jetty-9.4.x' into jetty-10.0.x
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-11-01 20:24:43 +01:00
Jan Bartel 58c1d547a0
Issue #3044 Use unwrapped session for SessionAsyncListener (#3053)
* Issue #3044 Use unwrapped session for SessionAsyncListener
2018-11-02 04:14:24 +11:00
Greg Wilkins 161f1698cf
Jetty 9.4.x 3018 request logging bad messages (#3020)
Issue #3018 improve logging and handling of slow data rates.

* Slow data rates now result in aborted channels, but exception is still thrown.  Test for 408 in requestLog
* Updated many RequestLog usages to use Server.setRequestLog rather than a RequestLogHandler
* Fixed javadoc
* removed BadRequestLogHandlerTest (tested in RequestLogTest)
* added JMH to show the future of request logging for #113
* copyright header.
* Updates from review
* Revert to throwing BadMessageException
* BME ensures a 408 is logged rather than a 500

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-11-01 17:06:04 +01:00
Greg Wilkins 8dcd7e44d8
Allows commas to separate cookies in RFC2965 compliance mode (#3045)
* Allows commas to separate cookies in RFC2965 compliance mode

* cleanup after review

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* revert accidental change

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-11-01 11:43:11 +01:00
olivier lamy b4a0d7ebcb Merge branch 'jetty-9.4.x' into jetty-10.0.x 2018-10-26 12:40:36 +10:00
Greg Wilkins 898560bec5
Issue #3030 Enforce Content-Encoding check only on parameter extraction. (#3031) 2018-10-26 06:44:40 +11:00
olivier lamy f4f3dc679a fix it test: add new property to be able to configure used java, fix jetty-http.xml with compliance mode changed
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2018-10-24 10:57:09 +10:00
Simone Bordet ee0656f861 Issue #3010 - Moving old MultiPart Parser.
Originally moved to an internal package, it is still used by other
modules such as jetty-server and jetty-servlets, so it needs to
be in an exported package.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-10-23 15:57:52 +02:00
Simone Bordet 3811555764 Merged branch 'jetty-9.4.x' into 'jetty-10.0.x'. 2018-10-23 13:33:01 +02:00
Jan Bartel 4ababf9888
Issue #294 Initial enter scope for DebugListener (#3021)
Signed-off-by: Jan Bartel <janb@webtide.com>
2018-10-23 17:29:54 +11:00
Jan Bartel 8eb21f84a3 Issue #2998 Add key to DebugListener dump; ensure LoginService dumped
only once.
2018-10-23 17:18:12 +11:00
Joakim Erdfelt 405a6b671d
Merge pull request #3017 from eclipse/jetty-10.x-issue-3011-move-httpcompliance-to-config
Issue #3011 - Moving HttpCompliance to HttpConfiguration
2018-10-22 16:24:28 -05:00
Joakim Erdfelt fbd9fc1da7 Issue #3011 - Removing HttpConnectionFactory.getHttpCompliance()
+ Can get HttpCompliance from HttpConfiguration now
+ Signature change to HttpConnection to avoid duplicate arguments
  on constructor.

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2018-10-22 16:12:11 -05:00