This commit harmonizes the handling of ConfigurationExtension for
Flyway. The existing Oracle and SQLServer extensions are now mapped from
flway.oracle and flyway.sqlserver, respectively. The existing properties
have been deprecated in favor of the new location.
Closes gh-36444
With this commit, when virtual threads are enabled, the auto-configured
applicationTaskExecutor changes from a ThreadPoolTaskExecutor to a
SimpleAsyncTaskExecutor with virtual threads enabled.
As before, any TaskDecorator bean is applied to the auto-configured
executor and the spring.task.execution.thread-name-prefix property is
applied. Other spring.task.execution.* properties are ignored as they
are specific to a pool-based executor.
Closes gh-35710
For consistency, replace webClient and WebClient with restClient and
RestClient. This also address a bean name clash between
RestClientAutoConfiguration's RestClient.Builder bean and
WebClientAutoConfiguration's WebClient.Builder bean that were both
previously named webClientBuilder.
Update `Saml2RelyingPartyRegistrationConfiguration` so that
`RelyingPartyRegistrations` uses `collectionFromMetadataLocation`
rather than `fromMetadataLocation` and searches candidates for a
matching entity ID.
Prior to this commit, it was possible for the wrong provider to be
used if multiple candidates existed in the returned metadata.
See gh-35902
Update `ReactorClientHttpConnectorFactory` to that SSL configuration
is applied in addition to any configured mappers.
Prior to this commit, SSL configuration would prevent configured
mappers from being applied.
See gh-35914
In Spring Framework 5.x with Jetty 9, the reactive
JettyRequestUpgradeStrategy was able to initialize Jetty's WebSocket
infrastructure itself. With Jetty 10 this is no longer possible and
Boot must perform the initialization as part of preparing the
reactive JettyWebServer.
This commit updates the reactive WebSocket auto-configuration to
initialize Jetty's WebSocket infrastructure as part of creating the
reactive JettyWebServer.
Fixes gh-33347
When Hazelcast is started on a fixed port and that port is already in
use, it does not fail to start which makes the problem hard to
detect. A symptom of the problem is that clients will not be able to
connect and will either retry indefinitely or will timeout depending
on their configuration.
This commit updates the Hazelcast client tests to start the Hazelcast
instance on an ephemeral port and to customize the client
configuration with the instance's address before use. This should
allow the client tests to work reliably in an environment where
Hazelcast's default port is already in use.
Closes gh-35903
Properties `ssl.bundle.pem.mybundle.keystore.private-key-password`
and `ssl.bundle.pem.mybundle.truststore.private-key-password` have
been added for configuring the password required to decrypt an
encrypted private key.
Only PKCS8 private keys with encryption are supported. PKCS1 and EC
private keys with encryption are much more complex to decrypt, and
are not supported.
Fixes gh-35652
As discussed on issue #35628, at some point the host property accepted
multiple comma-separated hosts. However, this was not intended, and for
better clarification, it was decided to implement a clearer error
message for this situation.
See gh-35684
This commit restores the previous behavior of MongoDB auto-
configuration, where the value of the
`spring.data.mongodb.authentication-database` is set in the
credentials when provided.
Fixes gh-35567
This commit restores the previous behavior of MongoDB auto-
configuration, where the value of the `spring.data.mongodb.database`
property takes precedence over the database specified in a
`spring.data.mongodb.uri` property.
Fixes gh-35566
Add `WelcomePageNotAcceptableHandlerMapping` which will return
an HTTP 406 status if a suitable welcome page is found but
cannot be accepted for the request.
An additional mapper is used so that we don't need to change
the order of the `WelcomePageHandlerMapping`. It's possible
that users may have additional root handler mappings
registered to run after the `WelcomePageHandlerMapping`
and we still need to respect those.
Fixes gh-35552
This commit removes an unnecessary test that checks for the pagination
and Connection support in Spring for GraphQL. After a change in
spring-projects/spring-graphql#707, we no longer can test this in
isolation, nor does it make sense to test this integration that
deeply.
See gh-35449
Fixes an issue where auto-configuration for Spring Authorization Server
was overriding the default exception handling (AuthenticationEntryPoint)
resulting in anonymous requests to the token endpoint being redirected
to the Spring Security login page instead of returning 401 Unauthorized.
Auto-configuration now registers a defaultAuthenticationEntryPointFor
that is added to any other entry points already configured.
See gh-35368
Replace `SessionRepositoryFilterConfiguration` filter registration bean
with a `DelegatingFilterProxyRegistrationBean` so that
`SessionRepository` beans are not initialized early.
Fixes gh-35240
The properties `spring.couchbase.env.ssl.key-store`
and `spring.couchbase.env.ssl.key-store-password`
are deprecated in favor of configuring an SSL bundle with
`spring.couchbase.env.ssl.bundle`. The older properties
have somewhat confusing names, since they are used to
configure a trust store in Couchbase, and they don't
provide all the options that an SSL bundle provides.
Closes gh-35135
Introduce `WebClientSsl` interface and auto-configuration to allow a
WebClient builder to have custom SSL configuration applied.
The previous `ClientHttpConnectorConfiguration` has been been changed
to now create `ClientHttpConnectorFactory` instances which can be used
directly or by `AutoConfiguredWebClientSsl`.
Closes gh-18556
Update `SslOptions` so that `null` is used for default values rather
than empty sets. Most libraries use `null` to indicate defaults so
aligning our class makes things easier.
See gh-34814
Update Tomcat, Jetty, Undertow and Netty servers so that an SslBundle
is used to apply SSL configuration. Existing `Ssl` properties are
internally adapted to an `SslBundle` using the `WebServerSslBundle`
class. Additionally, if `Ssl.getBundle()` returns a non-null value the
the `SslBundles` bean will be used to find a registered bundle by name.
See gh-34814
Add auto-configuration for SSL bundles including new configuration
properties that can be used to define a bundle.
SSL bundle properties are provided under the `spring.ssl.bundle` key.
Currently `jks` and `pem` variants are support. Both are configured
as a `Map` where the bundle name is the key.
A typical example would be:
spring:
ssl:
bundle:
pem:
mybundle
key:
password: secret
keystore:
certificate: classpath:mycert.pem
private-key: classpath:mykey.pem
A `SslBundleRegistrar` interface is also provided to allow programmatic
contributions to the auto-configured `SslBundleRegistry`.
See gh-34814
Prior to this commit, a failure to load a ConnectionDetailsFactory
caused startup to fail. This causes problems when some of a
factory's required classes were not available, for examle when using
spring-boot-docker-compose without Actuator.
Fixes gh-35100
This commit deprecates OAuth2ClientPropertiesRegistrationAdapter as
it wasn't really an adapter because it provides a static utility
method rather than adapting one contract to another. A replacement,
OAuth2ClientPropertiesMapper, is introduced that maps the OAuth2
client properties to the required types.
Closes gh-34714
This commit adds the following properties under
spring.security.oauth2.authorizationserver.client.[registration-id]:
* endpoint.device-authorization-uri
* endpoint.device-verification-uri
* token.device-code-time-to-live
See gh-34957
Previously, FlywayProperties returned an empty string when its
password had not been set. This prevented the desired fallback to
JdbcConnectionDetails.
Fixes gh-35046
Update restcontainers service connections support so that
technology specific `@ServiceConnector` annotations are not longer
required.
A single `@ServiceConnector` annotation can now be used to create
all `ConnectionDetail` beans.
Closes gh-35017
Update the auto-configuration gradle plugin so that the
configuration-properties plugin is not longer automatically applied.
This allows us to have auto-configuration modules that don't ship
configuration properties.
Closes gh-35028