1416 Commits
Author SHA1 Message Date
Andy Wilkinson 8e7128730f Merge branch '4.0.x' into 4.1.x
Closes gh-51544
2026-09-02 14:18:14 +01:00
Andy Wilkinson d6c2e687b0 Polish "Use constructor injection in classes that partipate in @Import"
See gh-51490

Signed-off-by: Andy Wilkinson <andy.wilkinson@broadcom.com>
2026-09-02 14:16:07 +01:00
piyushrajyadav e161167450 Use constructor injection in classes that partipate in @Import
See gh-51490

Signed-off-by: piyushrajyadav <piyushyadavrajyadav@gmail.com>
2026-09-02 14:15:45 +01:00
Stéphane Nicoll b28ee13698 Merge branch '4.1.x'
Closes gh-51514
2026-08-30 20:28:03 +02:00
Stéphane Nicoll d2f0b8b339 Merge branch '4.0.x' into 4.1.x
Closes gh-51513
2026-08-30 20:27:47 +02:00
Stéphane Nicoll 60445a5069 Polish "Fix null customizer checks in HTTP client builders"
See gh-51509
2026-08-30 20:21:43 +02:00
kdomo 93a24eabb1 Fix null customizer checks in HTTP client builders
AbstractClientHttpRequestFactoryBuilder.mergedCustomizers and its
reactive counterpart asserted on the customizers field rather than
the customizer parameter. The field is never null since the
constructor defaults it to an empty list, so the assertion always
passed and a null customizer was not rejected.

See gh-51509

Signed-off-by: kdomo <dongho5088@naver.com>
2026-08-30 20:16:15 +02:00
Stéphane Nicoll 9d76c1fd32 Merge branch '4.1.x'
Closes gh-51512
2026-08-30 20:01:24 +02:00
Stéphane Nicoll a557f6b93a Merge branch '4.0.x' into 4.1.x
Closes gh-51511
2026-08-30 20:01:13 +02:00
Stéphane Nicoll b1b145de21 Polish contribution
See gh-51466
2026-08-30 19:59:11 +02:00
Scott Frederick 4ca8304959 Retain SSL host config customizations during Tomcat initialization
Applying an SSL bundle to a Tomcat server replaced any `SSLHostConfig`
already registered on the connector for a host name, so an
`SSLHostConfig` could not be configured before Spring Boot applied a
bundle to it.

Reuse any existing `SSLHostConfig` during initial configuration, so an
`SSLHostConfig` registered on the connector before the bundle is
applied retains settings such as `trustManagerClassName`,
`truststoreProvider`, or `truststoreAlgorithm`.

Client authentication settings are only applied when creating a new
`SSLHostConfig`, so the `certificateVerification` of an existing
`SSLHostConfig` is retained rather than being overwritten with the
value derived from the `server.ssl.client-auth` property.

See gh-51466

Signed-off-by: Scott Frederick <scottyfred@gmail.com>
2026-08-30 19:54:00 +02:00
Andy Wilkinson 74f1e37c3d Polish "Configure required authentication operation types for embedded LDAP"
See gh-51461
2026-08-27 14:51:49 +01:00
Sean ab642b82da Configure required authentication operation types for embedded LDAP
Signed-off-by: Sean <seanxu@connect.hku.hk>

See gh-51461
2026-08-27 14:47:11 +01:00
Andy Wilkinson 37a20a302b Merge branch '4.1.x'
Closes gh-51482
2026-08-27 14:42:31 +01:00
Andy Wilkinson b7333fa1aa Merge branch '4.0.x' into 4.1.x
Closes gh-51481
2026-08-27 14:42:20 +01:00
2heunxun 9847c9613e Honor existing 'encrypt' JDBC parameter for SQL Server Docker Compose
Signed-off-by: 2heunxun <seapeon@naver.com>

See gh-51467
2026-08-27 14:32:40 +01:00
Moritz Halbritter 99274e3143 Fix embedded LDAP SSL and reuse client auto-configuration
Replace the hand-rolled LdapContextSource of the embedded server
with an LdapConnectionDetails implementation, so that
LdapAutoConfiguration creates the context source for both the external
and the embedded case. Previously, the embedded context source derived
the URL scheme from spring.ldap.ssl and never applied an SSL bundle to
the JNDI environment, leaving an embedded LDAPS server unreachable. It
also ignored spring.ldap.anonymous-read-only, spring.ldap.referral,
spring.ldap.base-environment and any DirContextAuthenticationStrategy
bean, all of which now apply.

The embedded server provides everything that describes a connection to
it, so spring.ldap.urls, spring.ldap.username, spring.ldap.password and
spring.ldap.ssl are now ignored while it is used. A spring.ldap
configuration meant for a production server therefore no longer has to
be unset for a test to run against the embedded server. This is a
behavior change: spring.ldap.urls used to take precedence and silently
pointed the client away from the embedded server.

As spring.ldap.base-environment now applies to the embedded case, a
socket factory set there would be replaced by the one of the SSL
bundle. Startup fails instead of using either silently.

LdapProperties.determineUrls has been removed. Its local.ldap.port
handling only ever served the embedded case, which the embedded
connection details now cover, and the default URL derivation has moved
to PropertiesLdapConnectionDetails, its only caller.

Closes gh-51465
2026-08-27 09:32:13 +02:00
Moritz Halbritter bf1b583596 Fail fast if ssl.enabled = true without an SSL bundle
Setting spring.ldap.embedded.ssl.enabled without an SSL bundle started a
plain LDAP listener silently. It now fails at startup as a bundle is
required to provide the server's certificate and private key.

Closes gh-51471
2026-08-27 09:32:13 +02:00
Moritz Halbritter 6c33f551e7 Add missing tests for reflection hints
See gh-51382
2026-08-27 09:32:13 +02:00
Moritz Halbritter 4a3cad7983 Add SSL support for LDAP in Docker Compose
Also fixes missing LDAP entries in the documentation.

See gh-51382
2026-08-26 11:53:08 +02:00
Moritz Halbritter 969f1c03bf Polish "Add SSL bundle support to LDAP auto-configuration"
Configure the SSL bundle through the context source's base environment
rather than a DirContextAuthenticationStrategy. The strategy is not
consulted when read-only operations use an anonymous environment,
which is the default when no username is set, so LDAPS connections
silently used the JVM's default trust material. It was also bypassed
entirely when a custom strategy bean was defined.
Register an SSL bundle update handler so that reloaded key and trust
material is used by subsequent connections.

Target LDAPS rather than StartTLS by setting the JNDI
java.naming.ldap.factory.socket property, and fail at startup if a
bundle is combined with a non-ldaps URL or with a socket factory that
has also been set through spring.ldap.base-environment. Delegate all
socket factory methods so that a configured connect timeout is
applied.

Add spring.ldap.ssl.enabled to use the platform's default trust and
key material without a bundle, default the URL to
ldaps://localhost:636 when SSL is enabled, and register the reflection
hint that JNDI needs to load the socket factory by name in a native
image. Cover the result with integration tests that search over LDAPS
against OpenLDAP and LLDAP containers, including certificates that are
untrusted or issued to a different host.

See gh-51382
2026-08-26 10:35:57 +02:00
dhruv9b 255677d8e7 Add SSL bundle support to LDAP auto-configuration
See gh-51382

Signed-off-by: dhruv9b <9bdhruv@gmail.com>
2026-08-26 08:23:35 +02:00
Phillip Webb 862b763d00 Merge branch '4.1.x'
Closes gh-51458
2026-08-25 18:54:13 -07:00
Phillip Webb 9d617d0cae Merge branch '4.0.x' into 4.1.x
Closes gh-51457
2026-08-25 18:54:05 -07:00
Phillip Webb fa163d4f2d Polish "Retain SSL host config customizations when reloading SSL bundles"
See gh-51290
2026-08-25 18:53:05 -07:00
Scott Frederick cbbe588d1f Retain SSL host config customizations when reloading SSL bundles
Tomcat's SSL configuration is applied to an `SSLHostConfig` for each
host name. When an SSL bundle was updated, a new `SSLHostConfig` was
created and used to replace the existing one for that host name,
discarding any customizations that had been applied to it (for example
by a `TomcatConnectorCustomizer`).

Reuse the existing `SSLHostConfig` for the host name when one is
present, applying the updated bundle to it rather than replacing it. The
existing `SSLHostConfigCertificate` is also reused, as adding a second
certificate with an undefined type to an `SSLHostConfig` is rejected by
Tomcat.

See gh-51290

Signed-off-by: Scott Frederick <scottyfred@gmail.com>
2026-08-25 18:52:34 -07:00
Phillip Webb ef4f1404a1 Merge branch '4.1.x'
Closes gh-51455
2026-08-25 14:19:47 -07:00
Phillip Webb 914f39384c Merge branch '4.0.x' into 4.1.x
Closes gh-51454
2026-08-25 14:07:23 -07:00
Phillip Webb 5a21e0d698 Upgrade to spring-javaformat 0.0.48
Closes gh-51452
2026-08-25 13:58:58 -07:00
Phillip Webb 7538153cc1 Merge branch '4.1.x'
Closes gh-51451
2026-08-25 12:43:08 -07:00
Phillip Webb cd5d2decf9 Merge branch '4.0.x' into 4.1.x
Closes gh-51450
2026-08-25 12:43:03 -07:00
Phillip Webb 53c04499b4 Create properties despite used-defined ClientRegistrationRepository
Update `OAuth2ClientConfigurations` so that properties are created
regardless of a user-defined `ClientRegistrationRepository` bean.

Fixes gh-51447
2026-08-25 12:41:23 -07:00
Phillip Webb ca0772effd Merge branch '4.1.x'
Closes gh-51442
2026-08-25 11:49:40 -07:00
Phillip Webb 014bbcca82 Polish LdapHealthIndicator
See gh-51441
2026-08-25 11:46:03 -07:00
2heunxun d5ace369bd Fix LdapHealthIndicator reporting when LDAP version is unavailable
Fix regression caused by commit d26b6895 which caused
`doHealthCheck()` to only call `builder.up()` when the LDAP
server's protocol version (`java.naming.ldap.version`) could be
read from the JNDI environment.

See gh-51441

Signed-off-by: 2heunxun <seapeon@naver.com>
2026-08-25 11:43:49 -07:00
Moritz Halbritter 3f7cebd802 Polish "Allow configuring Micrometer Tracing MDC keys"
Derive logging.pattern.correlation from the configured MDC keys so that
log correlation keeps working when the keys are customized, instead of
silently rendering a blank correlation field.

Reject empty MDC keys and only clear Brave's default correlation fields
when the keys have been customized, so that applications using the
defaults are unaffected if Brave adds a default field.

Replace the tests that asserted on bean wiring with integration tests
covering the MDC contents, plus a smoke test for the log output.

See gh-50595
2026-08-25 13:54:00 +02:00
Phil Clay dc2274e5b6 Allow configuring Micrometer Tracing MDC keys
See gh-50595

Signed-off-by: Phil Clay <philsttr@users.noreply.github.com>
2026-08-25 13:51:28 +02:00
Moritz Halbritter 16445f82a6 Merge branch '4.1.x'
Closes gh-51434
2026-08-25 09:14:57 +02:00
Moritz Halbritter 7a77c35d75 Merge branch '4.0.x' into 4.1.x
Closes gh-51433
2026-08-25 09:14:42 +02:00
2heunxun d00566ae5d Fix watchdog thread leak in JmsHealthIndicator on start failure
See gh-51412

Signed-off-by: 2heunxun <seapeon@naver.com>
2026-08-25 09:07:25 +02:00
Moritz Halbritter 7a6be52eae Polish
See gh-50461
2026-08-25 08:45:47 +02:00
Phillip Webb e694cf15d9 Polish 2026-08-24 19:10:38 -07:00
Moritz Halbritter 6af1fb5c26 Polish "Align OTLP signal-specific properties with common fallback configuration"
Allow `management.opentelemetry.otlp.compression` to act as a common
default for OTLP compression, mirroring the existing endpoint/headers
fallback. Tracing, logging and metrics exporters now fall back to it
when their own signal-specific compression property is unset.

See gh-50461
2026-08-24 14:51:43 +02:00
somiljain2006 faf93946cd Align OTLP signal-specific properties with common fallback configuration
See gh-50461

Signed-off-by: somiljain2006 <somil16022006@gmail.com>
2026-08-24 14:09:52 +02:00
Stéphane Nicoll 2051b60a1a Merge branch '4.1.x'
Closes gh-51420
2026-08-24 10:50:15 +02:00
Stéphane Nicoll d5cec292dc Polish "Honor a wrapper's unwrap when resolving the root DataSource"
See gh-51410
2026-08-24 10:41:17 +02:00
jjh75607 5eb30621db Honor a wrapper's unwrap when resolving the root DataSource
See gh-51410

Signed-off-by: jjh75607 <jjh7560734@gmail.com>
2026-08-24 10:38:51 +02:00
Jonatan IvanovandStéphane Nicoll 188860f730 Adapt to changes in micrometer snapshots
See https://github.com/micrometer-metrics/micrometer/issues/2297

Co-authored-by: Stéphane Nicoll <stephane.nicoll@broadcom.com>
2026-08-14 08:16:26 +02:00
Stéphane Nicoll bfb9c8dbca Merge branch '4.1.x'
Closes gh-51370
2026-08-11 17:49:09 +02:00
Stéphane Nicoll 1757021744 Merge branch '4.0.x' into 4.1.x
Closes gh-51369
2026-08-11 17:49:02 +02:00