Commit Graph

306 Commits

Author SHA1 Message Date
Stephane Nicoll 0f652cdf4f Fix injection point with proxied DataSource
Prior to this commit, the `ApplicationContext` couldn't start with a
JDK-proxied `HikariDataSource` as the JMX auto-configuration was
attempting to inject a (too narrowed) `HikariDataSource`.

This commit rather injects a regular `DataSource` and attempt to unwrap
it as a `HikariDataSource`.

Closes gh-12271
2018-02-28 15:37:07 +01:00
Stephane Nicoll 5fa71a1f94 Switch test to ApplicationContextRunner 2018-02-28 14:13:45 +01:00
Phillip Webb c23b0e99f1 Fix failing PathRequestTests
Fix test failing due to commit d66496787d.

See gh-12238
2018-02-27 17:06:21 -08:00
Andy Wilkinson dc36360155 Polish 2018-02-27 21:25:48 +00:00
Andy Wilkinson c7ed5c3d4a Upgrade to EhCache 3.5.0
Closes gh-12256
2018-02-27 20:45:54 +00:00
Phillip Webb 29c3be3590 Polish 2018-02-26 10:26:02 -08:00
Johnny Lim d441a8a89a Polish
Closes gh-12205
2018-02-24 11:53:25 +01:00
Andy Wilkinson 1314678890 Nest @EnableWebFluxSecurity to avoid overzealous Wildfly warnings
Closes gh-12174
2018-02-23 20:50:20 +00:00
Andy Wilkinson 782ab2803e Polish documentation regarding target class proxying
Closes gh-12196
2018-02-23 14:52:43 +00:00
Stephane Nicoll 976a23d977 Fix duration unit of spring.messages.cache-duration
Closes gh-12183
2018-02-23 13:38:20 +01:00
Stephane Nicoll 92d1c6126b Harmonize `accesslog.enabled` flag for Undertow
Closes gh-12178
2018-02-23 11:26:33 +01:00
Stephane Nicoll 09ff815f00 Harmonize metadata
Closes gh-12177
2018-02-23 11:02:28 +01:00
Phillip Webb 4b9c3c137e Polish Collection.toArray
Consistently use `StringUtils.toStringArray`, `ClassUtils.toClassArray`
or zero length when converting collections to arrays.

Fixes gh-12160
2018-02-22 21:11:30 -08:00
Phillip Webb cd5266ac03 Polish 2018-02-22 20:25:28 -08:00
Brian Clozel dcf61abe30 Fix Reactive Server auto-configuration ordering
This commit ensures that Tomcat is the first reactive server configured
if the Tomcat dependency is on classpath.

Spring Boot chose Reactor Netty as the default for the reactive web
starter, but the Reactor Netty dependency can be used also for its HTTP
client. In case developers are adding Tomcat, Undertow or Jetty on their
classpath, we must configure those and consider Reactor Netty for the
client only.

Fixes gh-12176
2018-02-22 18:04:53 +01:00
Johnny Lim 2fe86da95b Use isTrue() and isFalse() for AssertJ
Closes gh-12170
2018-02-22 09:55:40 +01:00
Phillip Webb 46021928ba Rework common server customization
Update the configurable embedded web server factory interfaces to
extend `ConfigurableWebServerFactory` so that the can be used in a
`WebServerFactoryCustomizer`.

Extract server specific customization to their own auto-configuration
and align reactive/servlet server auto-configuration.

Closes gh-8573
2018-02-20 16:27:15 -08:00
Andy Wilkinson b5e2c5ec1c Polish 2018-02-20 19:58:39 +00:00
Phillip Webb 61f44179cb Relocate XA wrapper types
Move `XADataSourceWrapper` to `jdb` and `XAConnectionFactoryWrapper` to
`jms` so that they are packaged in a similar way to the underlying XA
types.

Fixes gh-12061
2018-02-19 20:22:03 -08:00
Johnny Lim 88b184ca23 Polish 2018-02-19 20:00:20 -08:00
Phillip Webb 9e75680e6f Polish 2018-02-16 18:11:54 -08:00
Brian Clozel 7ed4273fc3 Fix Redis Cache tests after key prefix changes
Update Redis Cache tests after changes in DATAREDIS-715.
2018-02-16 14:43:45 +01:00
Andy Wilkinson fe4c8f95ed Rename ReactiveWebServerAutoConfiguration
Closes gh-12086
2018-02-16 10:02:35 +00:00
Brian Clozel 0c1aac14a0 Move server.display-name configuration property
The `server.display-name` configuration property is used to configure
the application display name for Servlet-based applications.

This commit moves that property to:
`server.servlet.application-display-name` and keeps the same defaults.

Closes gh-8624
2018-02-15 15:28:28 +01:00
Brian Clozel 8d22a79eb6 Polish 2018-02-13 18:21:31 +01:00
Stephane Nicoll d468a0714e Polish "Polish modifier order"
Closes gh-12019
2018-02-13 09:50:20 +01:00
Johnny Lim 87bf0b26df Polish modifier order
See gh-12019
2018-02-13 09:49:59 +01:00
Phillip Webb 74cede5cdc Migrate integration tests to context runner
Migrate `IntegrationAutoConfigurationTests` to use the
`ApplicationContextRunner`.
2018-02-12 17:49:54 -08:00
Phillip Webb f34aa6f4d8 Migrate to Spring Integration Micrometer support
Remove custom `SpringIntegrationMetrics` and instead provide
auto-configuration to the direct Micrometer support added in Spring
Integration 5.0.2.

Closes gh-11985
2018-02-12 13:24:29 -08:00
Andy Wilkinson 1b156fc2c3 Polish 2018-02-12 11:26:53 +00:00
Andy Wilkinson 6d1d9eb816 Polish 2018-02-12 10:53:30 +00:00
Stephane Nicoll 2f13449b26 Polish "Improve FailureAnalyzer for embedded datasource"
Closes gh-11953
2018-02-12 11:11:36 +01:00
Patryk Kostrzewa e66745a98a Improve FailureAnalyzer for embedded datasource
See gh-11953
2018-02-12 11:11:36 +01:00
Phillip Webb 5de46c3186 Polish 2018-02-08 16:35:10 -08:00
Andy Wilkinson a09c64e18c Polish 2018-02-08 11:15:36 +00:00
Andy Wilkinson 76a450dfba Format with Eclipse Oxygen SR2 2018-02-08 10:53:53 +00:00
Madhura Bhave 0a446cb962 Refactor Spring Security auto-configuration classes
The auto-configuration for a `UserDetailsService` and the web bits
has been split into two.

Closes gh-11915
Fixes gh-11891
2018-02-07 16:12:46 -08:00
Andy Wilkinson 9a456924e4 Remove - from path-match and content-negotiation properties
Closes gh-11913
2018-02-07 15:09:32 +00:00
Phillip Webb a631619f63 Allow subpath H2 console matching
Fixes gh-11926
2018-02-06 13:25:17 -08:00
Phillip Webb eab0b84a80 Polish 'Add support for multi baseDn;
Update multi baseDn support to use the recently introduced
`@Delimter` annotation

Closes gh-11764
2018-02-04 10:43:26 -08:00
Eddú Meléndez 270dc2cd72 Add support for multi baseDn
Update LDAP properties and auto-configuration to support multiple
base DN values.

See gh-11764
2018-02-04 10:41:57 -08:00
Eddú Meléndez 44ad630de3 Migrate LDAP tests to use ApplicationContextRunner 2018-02-04 10:41:23 -08:00
Andy Wilkinson 00489c74ea Start building against Spring Data Kay SR4 snapshots
The fix in Spring Data Redis for sentinel configuration means that
two Jedis sentinel tests now attempt to connect to a Sentinel. As a
result the tests fail. Running a Redis Sentinel in a Docker container
appears to be non-trivial. As an alternative, this commit updates the
tests to capture the JedisConnectionFactory prior to its
initialization (which is the failure trigger) and then assert that its
configuration is as expected.

See gh-11884
Closes gh-11855
2018-02-02 11:12:37 +00:00
Andy Wilkinson 9a87424809 Use ApplicationContextRunner in RedisAutoConfigurationJedisTests 2018-02-02 11:12:22 +00:00
Andy Wilkinson 4a1bea1fed Polish 2018-02-01 20:03:02 +00:00
Phillip Webb 7d5e41f7dc Polish 2018-02-01 10:25:33 -08:00
dreis2211 3e84f5bdbe Remove obsolete comment
Closes gh-11874
2018-02-01 09:00:32 +01:00
Johnny Lim 3cead7693d Polish
Closes gh-11871
2018-02-01 08:35:42 +01:00
Madhura Bhave 71e9db012b Convert tests to use ApplicationContextRunner 2018-01-31 19:03:09 -08:00
Madhura Bhave 905666e797 Document usage of `AuthenticationEventPublisher`
Closes gh-11420
2018-01-31 18:41:08 -08:00
Stephane Nicoll 87c82310cf Merge branch '1.5.x' 2018-01-30 10:42:45 +01:00
Phillip Webb c90a5a9e9e Polish 2018-01-29 21:35:56 -08:00
Madhura Bhave 134628a62d Add PathRequest to reactive security for parity 2018-01-29 18:34:46 -08:00
Madhura Bhave e80c22cbf8 Add RequestMatcher for H2 console
Fixes gh-11704
2018-01-29 18:34:46 -08:00
Andy Wilkinson 6582afea4a Polish 2018-01-29 21:04:41 +00:00
Andy Wilkinson 244a287484 Merge branch '1.5.x' 2018-01-29 19:51:50 +00:00
Phillip Webb af50a18da9 Polish 2018-01-29 09:47:03 -08:00
dreis2211 c1675c2d5f Use InvocationOnMock.getArgument() where possible
Closes gh-11818
2018-01-29 08:06:00 +01:00
Phillip Webb b234501af3 Polish 2018-01-26 11:39:41 -08:00
Andy Wilkinson 192fe929c7 Polish "Use custom DataSource if Flyway or Liquibase has user or url"
Closes gh-11751
2018-01-26 14:51:43 +00:00
Dominic Gunn 5d3cd23eed Use custom DataSource if Flyway or Liquibase has user or url
This commit enables a more flexible Liquibase/Flyway configuration by
allowing for a combination of the provider's and the primary
DataSource's configuration to be used. This gives developers the
flexibility to specify only a user or a url and having
Liquibase/Flyway fall back to individual datasource properties rather
than ignoring the Liquibase/Flyway properties and falling back to the
default data source.

See gh-11751
2018-01-26 14:51:43 +00:00
Huang YunKun 7d4e558f8e Use PropertyMapper to configure WebServerFactory
See gh-11773
2018-01-26 11:08:23 +01:00
Madhura Bhave 3a95a7531a UserDetailsService not created when OAuth configured
Fixes gh-10531
2018-01-26 15:10:21 +05:30
Andy Wilkinson 4c23afdcd8 Polish 2018-01-25 11:04:16 +00:00
Andy Wilkinson e2cb7a7545 Align default scopes for Google with changes in Spring Security 5.0.1
Closes gh-11573
2018-01-25 10:58:05 +00:00
Stephane Nicoll a2a31894a8 Fix typo 2018-01-25 08:19:25 +01:00
Phillip Webb d61ba241b5 Move "testdb" naming to DataSourceProperties
Move the "testdb" naming logic to `DataSourceProperties` and expose
the `deduceDatabaseName` method so they can be used in
auto-configuration.

See gh-11719
2018-01-24 20:43:00 -08:00
Stephane Nicoll b67903a04a Keep "testdb" default datasource name internal
Previously, Hikari's pool name was auto-configured with the value of
`spring.datasource.name` that defaults  to `testdb`, which brings some
confusion.

This commit removes the default `testdb` value on
`spring.datasource.name` as it is a sane default only for an embedded
datasource. It is applied whenever applicable instead.

Closes gh-11719
2018-01-24 17:41:32 -08:00
dreis2211 542c3b7c1e Remove usage of Vector collection
Closes gh-11759
2018-01-24 16:36:45 -08:00
Phillip Webb ab6ad6aa4b Polish 2018-01-24 16:09:14 -08:00
Stephane Nicoll 960989cfe6 Polish "Add support for anonymousReadOnly in LdapProperties"
Closes gh-11744
2018-01-24 10:21:33 +01:00
Stephane Nicoll af0bdc893b Add support for anonymousReadOnly in LdapProperties
See gh-11744
2018-01-24 09:59:03 +01:00
Eddú Meléndez 633aefa844 Move tests to use ApplicationContextRunner 2018-01-24 09:58:35 +01:00
Brian Clozel 145d46e093 Polish 2018-01-23 15:52:44 +01:00
Brian Clozel be7c0a15f7 Move reactive ErrorAttributes into spring-boot
Closes gh-11714
2018-01-23 11:55:34 +01:00
Phillip Webb dc935fba48 Polish 2018-01-19 20:44:18 -08:00
Madhura Bhave d9ff51ccd3 Add StaticResourceRequest for WebFlux Security
Closes gh-11040
2018-01-20 10:00:08 +05:30
Madhura Bhave 5e2cc02499 Move servlet specific security auto-config 2018-01-20 09:41:50 +05:30
Brian Clozel 247b7f0842 Fix WebFlux default error view for null exception messages
This commit prevents NullPointerExceptions when the default HTML error
view is being rendered with a `null` message.

Fixes gh-11677
2018-01-19 10:13:59 +01:00
Phillip Webb f3379668ac Polish 2018-01-18 23:21:51 -08:00
Brian Clozel c233125f1d Don't render error view if response is committed
This commit prevents the default error view from rendering itself if the
response has been committed already. In this case, it is impossible to
change the HTTP response status and write a proper response - trying to
do so often results in a `IllegalStateException` since the response body
has already been written to.

Fixes gh-11580
2018-01-18 11:40:11 +01:00
Andy Wilkinson 54c0cf513b Polish 2018-01-17 19:03:23 +00:00
Andy Wilkinson 3904f49c9f Configure ServletContext before initializing S…C…Initializer beans
Previously, the ServletContext was configured after any
ServletContextInitializer beans had been initialized. This meant that
any configuration class that provided such a bean would be initialized
before the ServletContext was configured. If the configuration class
used the ServletContext in its initializtaion that it would see it in
its default, unconfigured state.

This commit reworks the configuration of the ServletContext so that
it happens before any ServletContextInitializer beans are initialized.

Closes gh-10699
2018-01-17 17:32:23 +00:00
Brian Clozel 1f26a0314c Sanitize inputs in default reactive HTML error view
This commit uses HTML escaping to sanitize error inputs that are
displayed in the default reactive HTML error view.

Fixes gh-11582
2018-01-16 17:20:12 +01:00
Stephane Nicoll 023bc13fb6 Merge branch '1.5.x' 2018-01-16 11:46:42 +01:00
Brian Clozel 1e648801bd Move spring.mvc.media-types to content-negotiation
This commit moves "spring.mvc.media-types" to the
"spring.mvc.content-negotiation.*" namespaces introduced in gh-11105.

Closes gh-11636
2018-01-16 11:35:49 +01:00
Brian Clozel 22c22a1ced Move server.session.* to server.servlet.session.*
Closes gh-11589
2018-01-15 17:50:32 +01:00
Andy Wilkinson 23d8d608c4 Polish 2018-01-15 13:35:46 +00:00
Brian Clozel 67e5897c40 Disable suffix pattern matching in Spring MVC
This commit disables by default suffix pattern matching in Spring MVC
applications. As described in the Spring MVC documentation (see
https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html#mvc-ann-requestmapping-suffix-pattern-match),
this is considered as best practice.

This change also introduces new configuration properties to achieve
similar results in a safer way (using query parameters) or to rollback
to the former default.

Closes gh-11105
2018-01-15 11:58:26 +01:00
Johnny Lim 77150f8dc9 Polish
Closes gh-11630
2018-01-15 10:20:31 +01:00
Stephane Nicoll 3f88906b97 Fix handling of ResponseStatusException
This commit updates DefaultErrorAttributes to handle
ResponseStatusException explicitly. This exception is used in a
WebFlux application to signal that the processing of the query has
failed with an HTTP status code and a reason phrase. The latter is now
properly mapped to the `message` attribute of the response body.

Closes gh-11614
2018-01-15 10:03:15 +01:00
Andy Wilkinson 2b99962a85 Replace use of Date with OffsetDateTime and Instant in Actuator
Closes gh-10976
2018-01-12 17:26:05 +00:00
Stephane Nicoll 4a9123d6e3 Detect user-defined RedisCacheConfiguration
This commits improves the cache auto-configuration for Redis by looking
up a custom "RedisCacheConfiguration" bean that allows to take full
control over the `RedisCacheManager`.

Closes gh-11599
2018-01-11 11:52:08 +01:00
Brian Clozel 98ac2218db Apply server.undertow.* config to reactive servers
This commit applies `server.undertow.*` configuration properties
to Undertow when configured as a reactive web server.

See gh-11500
2018-01-11 11:15:23 +01:00
Brian Clozel 15bc718248 Apply server.jetty.* config to reactive servers
This commit applies `server.jetty.*` configuration properties
to Jetty when configured as a reactive web server.

It also removes some infrastructure support for Jetty 8, which
is not supported anymore in Spring Boot 2.0 (partial fix for
gh-11504).

See gh-11500
2018-01-11 11:15:17 +01:00
Brian Clozel d264af8142 Apply server.tomcat.* config to reactive servers
This commit applies most `server.tomcat.*` configuration
properties to Tomcat when set up as a reactive web server.

Some Servlet-specific properties are not applied:

* server.tomcat.additional-tld-skip-patterns
* server.tomcat.redirect-context-root
* server.tomcat.use-relative-redirects

Fixes gh-11334
2018-01-11 11:15:02 +01:00
Stephane Nicoll b2eae0006d Polish "Make GsonAutoConfiguration align with JacksonAutoConfiguration"
Closes gh-11591
2018-01-11 10:36:58 +01:00
Phillip Webb b078698f20 Update copyright year of changed files 2018-01-09 12:13:27 -08:00
Phillip Webb b3ec2c9d1d Polish 2018-01-09 12:12:59 -08:00
Stephane Nicoll df647605af Merge branch '1.5.x' 2018-01-09 13:28:08 +01:00