Commit Graph

2258 Commits

Author SHA1 Message Date
Juergen Hoeller
bac68c8d3f StandardServletMultipartResolver accepts any HTTP method for multipart
Issue: SPR-16975
2018-06-28 14:15:16 +02:00
Phillip Webb
a89e716cc7 Use tabs rather than spaces in tests
Update tests to ensure that tabs are used instead of spaces. Also
consistently apply a new line at the end of each file.

Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Phillip Webb
1c25cec44f Polish test code
Polish a few issue identified when adding checkstyle to the
build. Although checkstyle is not enforcing rules on tests,
these are a few minor changes that are still worth making.

Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Phillip Webb
81451aa800 Organize imports
Reorganize imports to ensure consistent ordering. This commit also
expands any `.*` static imports in favor of using fully-qualified
method references.

Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Phillip Webb
5cedd0d5d4 Consistently use tabs rather than spaces
Update code that has accidentally used spaces instead of tabs.
Also remove all trailing whitespace.

Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Phillip Webb
9de3689f63 Never use 'this.' when accessing loggers
Ensure that `this.` is never used when accessing loggers.

Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Phillip Webb
0b53c1096a Always use 'this.' when accessing fields
Ensure that `this.` is used consistently when accessing class
fields.

Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Phillip Webb
eeebd51f57 Use consistent class design
Update all classes so that inner classes are always last. Also
ensure that utility classes are always final and have a private
constructor and make exceptions final whenever possible.

Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Phillip Webb
0ad0f341bd Don't use single letter catch variables
Update existing catch blocks to ensure that `ex` is always used
in preference to `e` or `t` as the variable name.

Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Phillip Webb
866e9d702e Use consistent block style
Update all code to use a consistent block style.

Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Phillip Webb
04a8c285df Fix annotation styling issues
Update all annotations so that each is on its own line and
consistently use the short form (i.e. don't use `value=`) when
possible.

Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Phillip Webb
e9d1b39aff Apply consistent copyright header
Add copyright header to `package-info.java` files and fix a few
malformed headers on existing java files.

Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Phillip Webb
c3a17dfd47 Ensure all files end with a newline
Update all files to ensure that they always end with a new line.

Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Phillip Webb
e0480f75ac Fix javadoc checkstyle issues
Fix checkstyle violations for javadoc.

Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Rossen Stoyanchev
7ccd2b024d Refine logging for async requests
Issue: SPR-16898
2018-06-25 14:42:29 -03:00
Juergen Hoeller
2a15962d7f WebHttpHandlerBuilder retains ApplicationContext in copy constructor
Issue: SPR-16972
2018-06-25 18:12:12 +02:00
Rossen Stoyanchev
900bc8a2e3 Logging improvements for WebFlux
Issue: SPR-16898
2018-06-22 22:44:24 -04:00
Juergen Hoeller
eaffcbe3be Upgrade to Gradle 4.8.1
Includes Kotlin 1.2.50, RxJava 2.1.15 and Protobuf 3.6.

Issue: SPR-16475
2018-06-22 22:49:12 +02:00
Brian Clozel
4a26f93a0d WebClient writes Content-Length for Mono bodies
In SPR-16892, the `EncoderHttpMessageWriter` has been improved to write
`"Content-Length"` HTTP response headers if the response body is of type
`Mono` (i.e. the actual content length is easily accessible without
buffering a possibly large response body). That change was relying on
the fact that the server side is using a `ChannelSendOperator` to delay
the writing of the body until the first signal is received.

This strategy is not effective on the client side, since no such channel
operator is used for `WebClient`. This commit improves
`EncoderHttpMessageWriter` and delays, for `Mono` HTTP message bodies
only, the writing of the body so that we can write the
`"Content-Length"` header information once we've got the body resolved.

Issue: SPR-16949
2018-06-19 11:51:45 +02:00
Rossen Stoyanchev
28a5c3009e Improve DEBUG/TRACE logging for Spring MVC
Issue: SPR-16898
2018-06-18 18:33:11 -04:00
Juergen Hoeller
003d643adc Consistent support for new JsonMappingException wording in Jackson 2.9
Issue: SPR-16947
2018-06-17 21:42:20 +02:00
Mark Chesney
e4666c17ec Support new exception message wording since Jackson 2.9
The wording changed from "Can not find" to "Cannot find" via PR #1682

Issues: SPR-16947
2018-06-17 13:27:20 +02:00
Rossen Stoyanchev
ebdcc015a4 Correctly set maxAge and expires in ResponseCookie
Issue: SPR-16940
2018-06-14 13:07:17 -04:00
Brian Clozel
09d9450154 Add SameSite support in WebFlux SESSION cookies
This commit adds support for the "SameSite" attribute in response
cookies. As explained in rfc6265bis, this attribute can be used to limit
the scope of a cookie so that it can't be attached to a request unless
it is sent from the "same-site".

This feature is currently supported by Google Chrome and Firefox, other
browsers will ignore this attribute.

This feature can help prevent CSRF attacks; this is why this commit adds
this attribute by default for SESSION Cookies in WebFlux.

See: https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis

Issue: SPR-16418
2018-06-14 11:39:03 +02:00
Juergen Hoeller
1e5f8cc232 FilePart and MultipartFile provide transferTo(Path) variant
Also, ZeroCopyHttpOutputMessage provides writeWith(Path, int, int), enforcing that variant as the implementation target in 5.1 (analogous to FilePart).

Issue: SPR-16925
2018-06-14 00:42:36 +02:00
Rossen Stoyanchev
0b61c748f6 Protected methods for serializing form content
Issue: SPR-16855
2018-06-13 17:14:49 -04:00
Rossen Stoyanchev
278881b8df Polish form writer and converter 2018-06-13 17:05:34 -04:00
Juergen Hoeller
0dc434b35e Polishing 2018-06-13 22:04:10 +02:00
Juergen Hoeller
3fc8ec498c MockHttpServletRequest returns a single InputStream or Reader
Issue: SPR-16505
Issue: SPR-16499
2018-06-13 22:03:16 +02:00
Juergen Hoeller
0b64bcd319 Remove outdated Servlet environment constraints from annotation javadoc
Issue: SPR-16936
2018-06-12 11:28:13 +02:00
Allon Mureinik
2573a543b2 SPR-16936 Fix PathVariable javadoc
@PathVariable's javadoc states that it supports MultiValueMap
parameters (introduced by commit df0902), but by reading through the
code, that does not seem to be the case (compare, e.g.,
PathVariableMapMethodArgumentResolver to
RequestParamMapMethodArgumentResolver).

Moreover, parsing MultipleValueMap is done according to the ";"
character, and placing such a character in a path (e.g., consider
something like "/app/{param}/show" would just break the path.

This patch fixes PathVariable's javadoc by removing the mention of
MultiValueMap.
2018-06-12 11:12:57 +02:00
Brian Clozel
05ff8b722d Fix ResourceRegion HttpMessageConverter write checks
This commit fixes the write checks for
`ResourceRegionHttpMessageConverter`, which was previously not checking
properly the parameterized type (e.g. in case of a `List<Something>`).

Issue: SPR-16932
2018-06-11 22:53:55 +02:00
Juergen Hoeller
9c36b53833 Upgrade to JAXB 2.3.0.1, Aalto XML 1.1, Rome 1.10 2018-06-11 22:01:51 +02:00
Brian Clozel
a5cd01a4c8 Restrict HTTP methods on Reactive HiddenHttpMethodFilter
This commit restricts the allowed HTTP methods on HiddenHttpMethodFilter
(Reactive variant) to the following: PUT, DELETE, PATCH.

This filter is meant to be used to simulate those methods from HTML
forms sent by browsers, so no other methods are allowed.

Issue: SPR-16836
2018-06-11 18:53:23 +02:00
Brian Clozel
f64fa3dea1 Restrict HTTP methods on Servlet HiddenHttpMethodFilter
This commit restricts the allowed HTTP methods on HiddenHttpMethodFilter
(Servlet variant) to the following: PUT, DELETE, PATCH.

This filter is meant to be used to simulate those methods from HTML
forms sent by browsers, so no other methods are allowed.

Issue: SPR-16836
2018-06-11 18:53:23 +02:00
Brian Clozel
417354da8a Remove dependency management noise from POMs
Prior to this commit, the generated POMs for Spring Framework modules
would contain unneeded/harmful information from the Spring Framework
build:

1. The BOM imports applied to each module by the dependency
management plugin, for example for Netty or Reactor Netty.
Spring should not export that opinion to its POMs.

2. The exclusion of "org.slf4:jcl-over-slf4j" from *all* dependencies,
which made the POMs much larger than necessary and suggested to
developers that they should exclude it as well when using all those
listed dependencies. In fact, only Apache Tiles currently brings that
transitively.

This commit removes that information from the POMs.
The dependencyManagement Gradle plugin is disabled for POM generation
and we manually resolve the dependency versions during the generation
phase.
The Gradle build is streamlined to exclude "org.slf4:jcl-over-slf4j"
only when necessary.

Issue: SPR-16893
2018-06-11 15:57:54 +02:00
Rossen Stoyanchev
86c861516d Accept Predicate instead of HandlerTypePredicate
Issue: SPR-16336
2018-06-08 15:32:07 -04:00
Sebastien Deleuze
ac37b678a3 Remove JSONP support
CORS is now widely supported and should be used instead for cross-domain
requests.

Issue: SPR-16914
2018-06-08 12:15:48 +02:00
Rossen Stoyanchev
31159a8506 Extract HandlerTypePredicate from ControllerAdviceBean
Issue: SPR-16336
2018-06-07 18:18:42 -04:00
Rossen Stoyanchev
72b1d4c648 Remove explicit references to Reactor Netty version
...now that 0.8 is also listed in the Reactor bom.

Issue: SPR-16387
2018-06-06 14:35:54 -04:00
Rossen Stoyanchev
fd946b8157 Protected getContentType in DecoderHttpMessageReader
Issue: SPR-16856
2018-06-05 16:23:21 -04:00
Rossen Stoyanchev
010352163b Eliminate the need for Encoder#getContentLength
Issue: SPR-16892
2018-06-04 15:48:47 -04:00
Rossen Stoyanchev
124d4c833c Support for Servlet request params with HTTP DELETE
This commit adds FormContentFilter, which is the same as the
HttpPutFormContentFilter but also supports DELETE.

The HttpPutFormContentFilter is now deprecated.

Issue: SPR-16874
2018-06-04 15:48:47 -04:00
Rossen Stoyanchev
a3216432b5 Polish
Issue: SPR-16387
2018-05-31 15:38:30 -04:00
Violeta Georgieva
ffbc75ae47 Upgrade to Reactor Netty 0.8
Issue: SPR-16387
2018-05-31 15:37:39 -04:00
Juergen Hoeller
c75423216c AbstractRequestLoggingFilter.isIncludeHeaders() declared as protected
Issue: SPR-16881
2018-05-29 21:52:31 +02:00
Juergen Hoeller
8593fec22c Avoid ConstantConditions warnings suppression (plus related polishing)
Issue: SPR-15756
2018-05-29 21:47:10 +02:00
Rossen Stoyanchev
2acf91a438 Polish 2018-05-26 09:24:23 -04:00
Rossen Stoyanchev
3ede3a4b34 Extension point in HttpMessageConverterExtractor 2018-05-25 13:45:10 -04:00
Rossen Stoyanchev
c7c3e5585b X-Forwarded-Ssl is listed in ForwardedHeaderFilter
Issue: SPR-16863
2018-05-25 13:39:37 -04:00