Previously, if an HTTP request that used a templated URI was handled
by something other than Spring MVC, a potentially unbounded number of
metrics would be created. This happened because, in the absence of
Spring MVC's best matching pattern attribute, MetricsFilter would fall
back to using the request's path. If the handling route was templated,
MetricsFilter would be unaware and would record different metrics for
each different path, rather than a single metric for the matching
pattern.
This cimmit updates MetricsFilter so that it falls back to using
unmapped when Spring MVC's best matching pattern attribute is not
available. This ensures that an unbounded number of metrics will no
longer be created, at the cost of losing specific metrics for requests
that are not handled by Spring MVC and that do not use a templated
path.
Closes gh-5875
Log4J2 enables its shutdown hook by default. When the JVM is exiting,
this creates a race between logging that happens during the
application context being closed and Log4J2 being shut down such that
the logging is lost.
This commit updates SpringBootConfigurationFactory so that it
produces a custom sub-class of DefaultConfiguration that disables the
shutdown hook by default. In addition to solving the problem described
above, this also aligns the Log4J2 logging system with the
logging.register-shutdown-hook property which defaults to false.
Closes gh-11360
Previously, when a user had declared a custom MultipartResolver bean
that is a CommonsMultipartResolver, part resolution would fail. The
failure was occurring as the servlet container was consuming the parts
before CommonsMultipartResolver had a chance to read them. This was
happening because a MultipartConfigElement was being auto-configured.
This commit updates the multipart auto-configuration so that a
MultipartConfigElement is not auto-configured when there is a
CommonsMultipartResolver bean in the context.
Closes gh-7735
This commit replaces the use of a GET method by a DELETE method for
testing that the HiddenHttpMethodFilter is ordered before the security
filter. With SPR-16836 changes, only PUT DELETE and PATCH are now
allowed.
Update `TomcatResources` so that `META-INF/resources` folders in
`src/main/resources` no longer fail with a "URI is not hierarchical"
exception.
Closes gh-13265
This commit separates the auto-configuration of JavaMailSender in two
distinct configuration: one based on existing Session available on JNDI
and the other one based on properties configuration.
This clarifies the auto-configuration report and the fact that the JNDI
variant overrides any Session-related properties that would have been
set in the environment
Closes gh-13026
Update `ErrorPageFilter` so that a Tomcat `ClientAbortException` no
longer causes "Cannot forward to error page for request" logging for
committed responses. Since a `ClientAbortException` indicates that the
client is no longer available it's of no consequence that the request
has been committed and the forward will fail.
Closes gh-13221
Update `ServerProperties` to also call `setHttpOnly` on the
`TomcatContext`. It appears that this is required in addition to
using the `ServletContextInitializer` to setup `SessionCookieConfig`.
Closes gh-12580