387 Commits

Author SHA1 Message Date
Joakim Erdfelt
e9ac2c8c97
Fixing #4144 - handle wrapped requests better
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-10-01 17:49:30 -05:00
Jan Bartel
10de54fa07
Issue #4072 Add test for SessionAuthentication serialization (#4074)
Signed-off-by: Jan Bartel <janb@webtide.com>
2019-09-10 14:48:20 +10:00
康智冬
49ba6d1acb fix typo and grammar (#4045)
Signed-off-by: KangZhiDong <worldkzd@gmail.com>
2019-09-02 14:29:50 -04:00
Greg Wilkins
83463c2a23
Issue #3964 - Listener behavior cleanup (Jetty 9.4.x) (#3965)
Issue #3964
* Avoid creating listener list for rarely used requestAttributeListener
* AbstractConnector keeps a specific list of HttpChannel.Listeners
to avoid Connection.Listeners and MBean listeners being added to
the HttpChannel listener list.
* Simplified listener handling by avoiding null connector, previously
only needed for testing.
* Fixed test that assumed HttpChannel listeners were not cleared by a recycle
* Separated out durable vs cyclic HttpChannel.Listeners, so as to
simplify handling.
* Deprecated cyclic HttpChannel.Listeners, as I'm not sure the channel is
the right place for them.
* Added improved method to combine multiple HttpChannel Listeners
into a single Listener.
* Fixed MockConnector
* Added benchmark
* Improved benchmark
* Updates from review
* Removed benchmark and alternate implementations.
* Updated javadoc
* Updates from review

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-08-27 17:38:20 +10:00
Greg Wilkins
bde86467f4
Issue #3806 - Make Async sendError fully Async (#3912)
* Issue #3806 async sendError

Avoid using isHandled as a test withing sendError as this can be
called asynchronously and is in a race with the normal dispatch of the
request, which could also be setting handled status.

The ErrorHandler was dispatching directly to a context from within
sendError.  This meant that an async thread can call sendError and be
dispatched to within the servlet container at the same time that the
original thread was still dispatched to the container.

This commit fixes that problem by using an async dispatch for error
pages within the ErrorHandler.  However, this introduces a new problem
that a well behaved async app will call complete after calling
sendError.  Thus we have ignore complete ISEs for the remainder of
the current async cycle.

Fixed the closing of the output after calling sendError. Do not
close if the request was async (and thus might be dispatched to an
async error) or if it is now async because the error page itself is
async.

* updates from review
* better tests
* revert ignore complete
* added some TODOs
* more TODOs
* fixed rename
* cleanup ISE and more TODOs
* refactored to call sendError for uncaught exceptions rather than onError
* more of the refactor
* extra tests for sendError from completing state

Reworked HttpChannelState and sendError so that sendError is now
just a change of state. All the work is done in the ErrorDispatch
action, including calling the ErrorHandler.  Async not yet working.

Additional tests

Converted ERRORED state to a separate boolean so it can be used for
both Sync and Async dispatches.

Removed ASYNC_IO state as it was just the same as DISPATCHED

The async onError listener handling is now most likely broken.


WIP making sendError simpler and more tests pass
WIP handling async and thrown exceptions
WIP passing tests

Improved thread handling

removed bad test

Implemented error dispatch on complete properly
more fixed tests

sendError state looks committed

- Added resetContent method to leave more non-content headers during sendError
- Fixed security tests
- simplified the non dispatch error page writing.  Moved towards being able to write async

* fixed gzipHandlerTest

* Updated handling of timeout errors.  According to servlet spec,
exceptions thrown from onTimeout should not be passed to onError, but
just logged and ignored:

   If an exception is thrown while invoking methods in an AsyncListener,
   it is logged and will not affect the invocation of any other AsyncListeners.

* This changes several tests.

* Dispatcher/ContextHandler changes for new ERROR dispatch handling. Feels a bit fragile!

* Fixed tests in jetty-servlets
* Fixed tests in jetty-proxy

* more test fixes

* Fixed head handling
reverted unnecessary changes
Improved reason handling

WIP on fully async error handling.
Simplified HttpChannelState state machines to allow for async actions
during completing

more WIP on fully async error handling.

sendError and completion are not both non-blocking, without using
a startAsync operation. However we are lacking unit tests that actually
exercise those code paths.

* Simplified name of states
Added test for async completion
* Cleanups and javadoc
* Cleanups and javadoc
* remove snake case
* feedback from review
* Write error page into fixed pooled buffer

Use the response to get/release a pooled buffer into which the error
page can be written.  Make it a fixed sized buffer and if it overflows
then no error page is generated (first overflow turns off showstacks
to save space).

The ErrorHandler badly needs to be refactored, but we cannot change
API in jetty-9

* More test fixes for different error page format
* minor cleanups
* Cleanup from Review
* Fixed javadoc
* cleanups and simplifications
* Cleanup from Review
* renaming and some TODOs
* Cleanup from Review
* Checkstyle fixes
* Cleanup from Review
* Code cleanups and simplifications
* fixed debug
* Cleanup from Review
* Ensure response sent before server shutdown
* removed unnecessary optimisation
* fixed duplicate from merge
* Updates from review

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-08-26 17:55:58 +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
Jan Bartel
bb7fb48f08
Fix checkstyle warnings for tests. (#3846)
Signed-off-by: Jan Bartel <janb@webtide.com>
2019-07-03 16:42:20 +02:00
Greg Wilkins
9706d70484
Jetty 9.4.x reformat (#3811)
* Removing Legacy Method Separators
* Restyling branch `jetty-9.4.x`
* Applying changes highlighted by checkstyle
* Applying XML restyling
* Fixing XML codestyle for IntelliJ
* Fixing XML style mistakes
* Revert "Applying XML restyling"
* Updating checkstyle for XML codestyle
* Reformatting pom.xml files
* Fixed empty string from line wraps
* Update intellij style to not do expression relative formatting. Reformatted code based on that.
* Increasing line split on Eclipse IDE Formatter to 512
* Restoring setting on internal default value.
+ IntelliJ will not export settings on things that set to their
  internal default values.
  We want to keep those values as a hedge against future default
  value changes in future releases of IntelliJ.
* Fixing intellij codestyle
* do not allow single line simple methods
* misc checkstyle fixes
* re-exported with correct name and all values

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-06-24 17:40:30 +02:00
Joakim Erdfelt
877815e195 Issue #3708 - Adding new methods and converting codebase to use them
+ StringUtil.replace(String, char, char)
+ StringUtil.strip(String, String)
+ URIUtil.encodeSpecific(String, String)
+ URIUtil.decodeSpecific(String, String)
+ TypeUtil.toClassReference(Class)
+ TypeUtil.toClassReference(String)

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-06-12 09:56:41 -05:00
Joakim Erdfelt
33fe55c339 Issue #3708 - use StringUtil alternatives for known slow JVM impls.
+ StringUtil.replace()
+ StringUtil.replaceFirst()
+ StringUtil.sanitizeFileSystemPath()

Change existing usages of String.replace() to either
use new StringUtil.replace() or other methods elsewhere
that better suit that specific need.

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-06-11 11:25:50 -05:00
Joakim Erdfelt
5d267963a3 Issue #3655 - Cookie generation now complies with RFC6265 spaces
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-05-22 23:10:12 +02:00
Joakim Erdfelt
b44ecc932a Issue #2909 - Replace B64Code with java.util.Base64
+ Deprecated B64Code
+ All code that isn't B64CodeTest is now using java.util.Base64
+ B64CodeTest is updated to confirm change to java.util.Base64
  is possible without change in behavior. Just have to make
  sure you use the appropriate Encoder / Decoder for the task
  at hand (default vs mime vs url)

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-05-15 10:08:11 +02:00
Jan Bartel
5dd35ee706
Issue #3627 Only renew session id when spnego authentication is fully complete (#3629)
* Issue #3627 Only renew session id when spnego authentication is fully complete.

Signed-off-by: Jan Bartel <janb@webtide.com>
2019-05-08 10:20:42 +02:00
Jan Bartel
6f35067375
Issue #3568 Make UserStore automatically startable by HashLoginService. (#3594)
Signed-off-by: Jan Bartel <janb@webtide.com>
2019-05-07 14:51:48 +02:00
Joakim Erdfelt
df716e1b23 Migrating away from junit5 deprecated isIn() to is(in())
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-04-30 12:33:28 -05:00
Jan Bartel
432fc41a32
Jetty 9.4.x 3456 programmatic authentication (#3472)
* Issue #3456 Allow multiple programmatic login/logout in same request.

Signed-off-by: Jan Bartel <janb@webtide.com>
2019-03-20 18:19:55 +11:00
Greg Wilkins
dbf0d2e6be Issue #3421 Duplicate session set-cookie (#3426)
Added Response.replaceCookieuse replaceCookie in sessions
unit tests

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-03-06 14:44:48 +11: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
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
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
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
Jan Bartel
871f73cdf6
Jetty 9.4.x 2932 switchable classloader for session attribute values (#2964) 2018-11-06 10:03:48 +01:00
Jan Bartel
8eb21f84a3 Issue #2998 Add key to DebugListener dump; ensure LoginService dumped
only once.
2018-10-23 17:18:12 +11:00
Greg Wilkins
15e1c73f9c
Cleanup the dump implementation (#2998)
* Cleanup the dump implementation
* improved the clarity of utility methods for dump and updated most dump methods
* fixed upgrade filter dump
* Improved dump after review
* Moved dumpObjects to Dumpable
* implemented dumpBeans with dumpObjects
* less verbose dump
* Dump streams
* fixed dump test

Signed-off-by: Greg Wilkins <gregw@webtide.com>
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-10-22 11:53:59 +11:00
Simone Bordet
42de1dffe0 Issue #2868 - Adding SPNEGO authentication support for Jetty Client.
Fixed server-side logic after review.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-10-02 13:25:33 +02:00
Simone Bordet
20fff533c8 Issue #2868 - Adding SPNEGO authentication support for Jetty Client.
Updated server-side authentication logic after review.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-10-02 12:01:59 +02:00
Simone Bordet
6b5a46b63b Issue #2868 - Adding SPNEGO authentication support for Jetty Client.
Avoid hardcoded KDC port in tests.
Updated Krb5LoginModule options with refreshKrb5Config=true,
to make sure the KDC configuration is re-read for every test.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-10-02 12:01:25 +02:00
Simone Bordet
2b11d30a45 Issue #2868 - Adding SPNEGO authentication support for Jetty Client.
Renamed server-side classes and added javadocs.
Deprecated old server-side classes in favor of the new ones.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-09-28 09:29:52 +02:00
Simone Bordet
e1905e6961 Issue #2868 - Adding SPNEGO authentication support for Jetty Client.
Updates after review.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-09-19 18:47:39 +02:00
Simone Bordet
f1391be559 Issue #2868 - Adding SPNEGO authentication support for Jetty Client.
Added missing copyright header.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-09-16 16:33:25 +02:00
Simone Bordet
2e65186c95 Issue #2868 - Adding SPNEGO authentication support for Jetty Client.
Implemented client-side SPNEGO authentication.
Reimplemented server-side SPNEGO authentication.
Added tests to verify behavior.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-09-14 19:48:39 +02:00
Simone Bordet
b0f34fec3f Code cleanups.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-09-14 10:01:58 +02:00
Simone Bordet
82c04f3ae8 Fixed typos SPENGO -> SPNEGO.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-09-07 10:12:06 +02:00
Joakim Erdfelt
a3f1592c50 Issue #2431 - Upgrade to Junit 5 (#2436)
+ Changes needed for new Junit 5
+ Migrating from Vintage junit API to Jupiter junit API
+ Relies on SNAPSHOT jetty-test-helper
  - this will be a formal release once this issue has been
    resolved satisfactory
+ Have jenkins always pull latest SNAPSHOT for each build
+ Adding jetty.snapshots repository
+ Using surefire 2.22.0 per advice from junit
+ Ensuring <reuseForks>true</reuseForks> to work around issue junit-team/junit5#801
+ Disabling <forkMode>always</forkMode> in maven-surefire-plugin
  due to bug https://github.com/junit-team/junit5/issues/801
+ OSGi tests must remain at vintage due to PaxExam
+ Moving from vintage TestingDir to jupiter WorkDir
+ Fixing imports to use jupiter, not vintage
+ Migrating vintage ExpectedException to jupiter assertThrows
+ Migrating vintage TestName to jupiter TestInfo
+ Migrating @RunWith(Parameterized.class)
  to @ParameterizedTest with Argument Sources
+ Migrating assertTrue(val.contains(needle))
  to assertThat(val, containsString(needle))
+ Aligning junit versions per recommendations from @sormuras
+ Adjusting parameter order change for assertEquals()
+ Test LifeCycle Annotation Migration

junit 4      | junit 5 / jupiter
------------ | -----------
@Before      | @BeforeEach
@After       | @AfterEach
@BeforeClass | @BeforeAll
@AfterClass  | @AfterAll

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2018-09-05 10:07:17 +10:00
Kazuhiro Sera
96218e8bc4 Fix typos detected by github.com/client9/misspell
Signed-off-by: Kazuhiro Sera <seratch@gmail.com>
2018-08-10 23:52:16 +09:00
Greg Wilkins
346879f2a5
Merge pull request #2664 from mperktold/jetty-9.4.x
Issue #2662 Unnecessary boxing conversions
2018-06-13 22:52:27 +02:00
Matthias Perktold
f901efc413 Issue #2662 - Unnecessary boxing conversions
Signed-off-by: Matthias Perktold <tias251@gmail.com>
2018-06-13 16:20:12 +02:00
Jan Bartel
0fb9022305
Issue #2565 Ensure bad file throws Exception for HashLoginService (#2622)
* Issue #2565  Ensure bad file throws Exception for HashLoginService

Signed-off-by: Jan Bartel <janb@webtide.com>
2018-06-07 14:51:53 +02:00
Olivier Lamy
f36eba4577
class.newInstance is deprecated #2435 (#2437)
* Class.newInstance() is deprecated in Java 9+ #2435

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2018-04-17 19:07:20 +10:00
WalkerWatch
534b8ea38b Add edit warning for .mod files. Resolves #173 2018-03-15 13:23:42 -04:00
Lachlan Roberts
a639ee9275 Resolved errorprone MissingOverride warnings #2206
`@Override` was added to methods which were missing the annotation #2206

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-03-01 13:59:25 +11:00
Greg Wilkins
ec51926622 reduce fragility of tests
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-02-19 19:22:32 +11:00
Joakim Erdfelt
21365234f8 Issue #2108 - Updating license headers for year 2018 2018-01-09 09:44:41 -06:00
Joakim Erdfelt
41ed9f29f4 Merge remote-tracking branch 'origin/jetty-9.3.x' into jetty-9.4.x 2018-01-09 09:37:25 -06:00
Joakim Erdfelt
fa4c7b0ca9 Issue #2108 - Updating license headers for year 2018 2018-01-09 08:39:37 -06:00
Joakim Erdfelt
067fc5d2d8 Issue #2108 - Upgrade licenses for 2018 2018-01-09 07:42:06 -06:00
Adam Retter
ad88309401 Don't create a session for every request if not required when doing form authentication
Signed-off-by: Adam Retter <adam.retter@googlemail.com>
2017-11-21 13:53:57 +00:00
Greg Wilkins
bc47942d17 Issue #1200 Improve PathWatcher
Squashed commit of the following:

commit 08b5acccf87c3b99152a8042d650aadf7e43c5ff
Merge: cea3366 daeb844
Author: Greg Wilkins <gregw@webtide.com>
Date:   Tue Sep 5 12:43:01 2017 +1000

    Merge branch 'jetty-9.4.x' into jetty-9.4.x-1200

commit cea3366625e16debf66e07284ab7afa89e73a32d
Author: Greg Wilkins <gregw@webtide.com>
Date:   Tue Sep 5 12:42:21 2017 +1000

    Issue #1200 ignore OSX failure

commit fd2493f2b30ffb19f4b404636e1e38c8612cb502
Author: Greg Wilkins <gregw@webtide.com>
Date:   Tue Sep 5 12:11:05 2017 +1000

    Issue #1789 PropertyUserStoreTest failures on windows

commit 89aa59ca7b16a393edc77116b13050d2d8a2c3e2
Author: Greg Wilkins <gregw@webtide.com>
Date:   Tue Sep 5 11:56:52 2017 +1000

    Issue #1200 fixes for windows

commit 1904b4566d9224a19729f83a7b49a5ab23aaa5d8
Merge: 74d770e eec6453
Author: Greg Wilkins <gregw@webtide.com>
Date:   Tue Sep 5 11:45:19 2017 +1000

    Merge branch 'jetty-9.4.x' into jetty-9.4.x-1200

commit 74d770e557e8ff613a5965cb430a7b83ee75bd45
Author: Greg Wilkins <gregw@webtide.com>
Date:   Fri Sep 1 10:47:05 2017 +1000

    Issue #1200 fixes for windows

commit f4ee0e97dcd0a07257cea8da8b3106f71150957f
Author: Greg Wilkins <gregw@webtide.com>
Date:   Thu Aug 31 10:24:07 2017 +1000

    Issue #1200 improved tests for long duration quiet time

commit 17381cbb0bbebe3ea27ed5f55caeb45c2856e1be
Author: Greg Wilkins <gregw@webtide.com>
Date:   Thu Aug 31 10:03:04 2017 +1000

    Issue #1200 fixed javadoc

commit b3a12c15167ce77a9781942680ca2d5c872374dd
Merge: ed0db46 ce4adb5
Author: Greg Wilkins <gregw@webtide.com>
Date:   Thu Aug 31 09:41:50 2017 +1000

    Merge branch 'jetty-9.4.x-1200' of github.com:eclipse/jetty.project into jetty-9.4.x-1200

commit ed0db46f495f27491ba58e6c4353cf1ef6f2061e
Author: Greg Wilkins <gregw@webtide.com>
Date:   Thu Aug 31 09:39:46 2017 +1000

    Issue #1200 Improved PathWatcher

commit ce4adb54ed58d39789ea1ba4f5d58035e57980ce
Merge: f993a7c 48aaecb
Author: Joakim Erdfelt <joakim.erdfelt@gmail.com>
Date:   Wed Aug 30 16:38:07 2017 -0700

    Merge branch 'jetty-9.4.x-1200' of github.com:eclipse/jetty.project into jetty-9.4.x-1200

commit f993a7c83ee7294a34b00cea68242adb7993e565
Author: Joakim Erdfelt <joakim.erdfelt@gmail.com>
Date:   Wed Aug 30 16:37:45 2017 -0700

    Issue #1200 - adding some important OSX/HFS+ timing differences

    + We should really be testing the FileSystem (not the OS) to make the timing
       constants be more sane. (APFS for example should be much lower on newer
       OSX installations

commit 48aaecb4dd291d94d591c1545f671eecff1e3587
Author: Greg Wilkins <gregw@webtide.com>
Date:   Thu Aug 31 08:50:42 2017 +1000

    Issue #1200 Improved PathWatcher diff

commit 1917f8b177d163bd42c07d5a2715858e7cf9787a
Author: Greg Wilkins <gregw@webtide.com>
Date:   Thu Aug 31 08:36:40 2017 +1000

    Issue #1200 Improved PathWatcher diff

commit ecf002395a426ee3c00a4b42a32222e61805234f
Author: Greg Wilkins <gregw@webtide.com>
Date:   Thu Aug 31 08:22:41 2017 +1000

    Issue #1200 Test improved PathWatcher

commit 0d76544093cbcddd9b29fc2c92a4d0bb0a6839a8
Merge: 0fd7187 eb1320f
Author: Greg Wilkins <gregw@webtide.com>
Date:   Wed Aug 30 16:43:15 2017 +1000

    Merge branch 'jetty-9.4.x' into jetty-9.4.x-1200

commit 0fd7187f908ed2d1bed24d5d82e25cb7ec244b0e
Author: Greg Wilkins <gregw@webtide.com>
Date:   Wed Aug 30 15:58:24 2017 +1000

    Issue #1200 Improve PathWatcher
2017-09-05 12:44:31 +10:00
Greg Wilkins
08a000b7a7 Issue #1520 wrong IO 2017-08-28 16:28:18 +10:00
Greg Wilkins
5f34e0bce8 Issue #1520 2017-08-28 16:03:51 +10:00