Commit Graph
61072 Commits
Author SHA1 Message Date
Phillip Webb bcf4c32426 Call setAllowBeanDefinitionOverriding before initializer
Update initialization order in `SpringApplication` to ensure
`setAllowBeanDefinitionOverriding` is called before initializiers.

This prevents an initializer from accidentially overriding a bean.

Closes gh-50264
2026-05-04 15:47:22 -07:00
Phillip Webb 796b0343c6 Merge branch '4.0.x'
Closes gh-50291
2026-05-04 15:37:42 -07:00
Phillip Webb a6895e3da2 Merge branch '3.5.x' into 4.0.x
Closes gh-50289
2026-05-04 14:03:03 -07:00
Phillip Webb fd1b5c7749 Merge pull request #50282 from SebTardif
Closes gh-50282

* pr/50282:
  Polish "Align DocumentBuilderFactory configuration"
  Align DocumentBuilderFactory configuration
2026-05-04 14:02:54 -07:00
Phillip Webb f8ecad5155 Polish "Align DocumentBuilderFactory configuration"
See gh-50282
2026-05-04 14:02:22 -07:00
Sebastien Tardif eb90d0de63 Align DocumentBuilderFactory configuration
Align configuration used for `DocumentBuilderFactory` instances
across the codebase.

See gh-50282

Signed-off-by: Sebastien Tardif <SebTardif@ncf.ca>
2026-05-04 13:36:12 -07:00
Stéphane Nicoll 607e4bbe65 Merge pull request #50271 from vpavic
* improve-datasourcebuilder:
  Polish "Handle lazy connection proxy datasource in DataSourceBuilder"
  Handle lazy connection proxy datasource in DataSourceBuilder

Closes gh-50271
2026-05-04 11:43:23 +02:00
Stéphane Nicoll 627ac0451d Polish "Handle lazy connection proxy datasource in DataSourceBuilder"
See gh-50271
2026-05-04 11:35:17 +02:00
Vedran Pavic 460318e569 Handle lazy connection proxy datasource in DataSourceBuilder
See gh-50271

Signed-off-by: Vedran Pavic <vedran@vedranpavic.com>
2026-05-04 11:30:17 +02:00
Stéphane Nicoll 96a36cfc8c Merge branch '4.0.x'
Closes gh-50287
2026-05-04 08:22:17 +02:00
Stéphane Nicoll 2c18012577 Merge branch '3.5.x' into 4.0.x
Closes gh-50286
2026-05-04 08:22:07 +02:00
Stéphane Nicoll f5203cf9b2 Merge pull request #50235 from kwondh5217
* fix/remove-meter-registry-from-global-on-context-close:
  Remove MeterRegistry from global registry on context close

Closes gh-50235
2026-05-04 08:21:55 +02:00
Daeho Kwon 9d7b21a65e Remove MeterRegistry from global registry on context close
See gh-50235

Signed-off-by: Daeho Kwon <trewq231@naver.com>
2026-05-04 08:12:01 +02:00
Stéphane Nicoll d7e49dc378 Merge branch '4.0.x'
Closes gh-50285
2026-05-03 17:05:24 +02:00
Stéphane Nicoll 1ec303982e Merge pull request #50281 from mmoayyed
* patch-1:
  Polish "Add links for Java CAS Client Spring Boot Starter"
  Add links for Java CAS Client Spring Boot Starter

Closes gh-50281
2026-05-03 17:05:12 +02:00
Stéphane Nicoll cce0142dbe Polish "Add links for Java CAS Client Spring Boot Starter"
See gh-50281
2026-05-03 17:04:15 +02:00
Misagh Moayyed 64ab149b20 Add links for Java CAS Client Spring Boot Starter
See gh-50281

Signed-off-by: Misagh Moayyed <mm1844@gmail.com>
2026-05-03 17:03:24 +02:00
Andy Wilkinson 9f97f11964 Merge branch '4.0.x'
See gh-50279
2026-05-02 07:12:08 +01:00
Andy Wilkinson ee6f1e6256 Merge branch '3.5.x' into 4.0.x
See gh-50278
2026-05-02 07:11:37 +01:00
Andy Wilkinson 46330c283f Make the environment available to Ivy as env.* properties
See gh-50277
2026-05-02 07:10:24 +01:00
Phillip Webb a35de379ee Merge branch '4.0.x'
Closes gh-50279
2026-05-01 17:48:35 -07:00
Phillip Webb 0bf9d6b481 Merge branch '3.5.x' into 4.0.x
Closes gh-50278
2026-05-01 17:48:05 -07:00
Phillip Webb a5a4e218d9 Fix transformed ivysettings.xml
Fix the environment variable reference to be correctly escaped.

Closes gh-50277
2026-05-01 17:47:05 -07:00
Andy Wilkinson c5969670d1 Merge branch '4.0.x'
Closes gh-50275
2026-05-01 11:45:42 +01:00
Andy Wilkinson 5628644848 Merge branch '3.5.x' into 4.0.x
Closes gh-50274
2026-05-01 11:41:12 +01:00
Andy Wilkinson 001171f8eb Harden deserialization in HttpRestartServer
While remote code execution is a feature of remote DevTools,
hardening of the deserialization of ClassLoaderFiles is not without
benefit. Not least, it should prevent false-positive reports from
AI-based security scanners that look at the code in isolation without
understanding the full context of the feature.

It should be noted that this hardening in no way protects against
remote code execution and the use of remote DevTools remains an
opt-in feature that should only be enabled in a trusted setting and
secured with a sufficiently complex secret. It remains the case that
an attacker who compromises the secret and has network access to the
remote application can achieve RCE by uploading a serialized
ClassLoaderFiles payload that adds malicious code and/or resources
to the application.

Closes gh-50272
2026-05-01 11:25:19 +01:00
Andy Wilkinson 1a64cac622 Merge branch '4.0.x'
Closes gh-50270
2026-05-01 09:34:24 +01:00
Andy Wilkinson 065c463cef Improve nullability of TestPropertyValues
Closes gh-50269
2026-05-01 08:39:18 +01:00
Phillip Webb c5cd580073 Support GrpcServerHealthScheduler in servlet environments
Refine `GrpcServerHealthScheduler` so that it will start when gRPC
is running behind a servlet.

Closes gh-50209
2026-04-30 21:25:57 -07:00
Phillip Webb ebce054028 Merge branch '4.0.x'
Closes gh-50266
2026-04-30 14:36:59 -07:00
Phillip Webb da2a62f32f Merge pull request #50265 from msridhar
* pr/50265:
  Align @Nullable in returned Map with actual implementation

Closes gh-50265
2026-04-30 14:36:41 -07:00
Manu Sridharan 55a6b4525c Align @Nullable in returned Map with actual implementation
See gh-50265

Signed-off-by: Manu Sridharan <msridhar@gmail.com>

Closes gh-50265
2026-04-30 14:35:43 -07:00
Phillip Webb 2fffebe214 Reduce garbage of repeated WritableJson.toByteArray() calls
Update the default implementation of `WritableJson.toByteArray()`
to reduce the amount of garbage created from repeated calls.

Prior to this commit, each call would create a new
`ByteArrayOutputStream` and `OutputStreamWriter` to create the
byte array. Writing structured JSON results in many calls to
the `toByteArray()` method, which means we repeatedly create
and destroy the `ByteArrayOutputStream` and `OutputStreamWriter`
objects. Furthermore, both contain buffers that are often
expanded and will overlap with each other.

The updated implementation uses a custom `Appendable`
implementation that uses a single `ByteBuffer` buffer. It also
has a `ThreadLocal` cache so that repeated calls from the same
thread can reuse the buffer. The cache uses a `SoftReference`
to ensure that the JVM can reclaim space if needed (for example,
if a large JSON line was written).

Closes gh-49428
2026-04-30 12:04:39 -07:00
Phillip Webb 72b176e85b Fix Spring gRPC documentation links 2026-04-30 10:59:08 -07:00
Andy Wilkinson 1d109887c4 Merge branch '4.0.x'
Closes gh-50261
2026-04-30 13:45:24 +01:00
Andy Wilkinson fc67e24820 Merge branch '3.5.x' into 4.0.x
Closes gh-50260
2026-04-30 13:44:06 +01:00
Andy Wilkinson 03eb75fbad Merge pull request #50095 from dlwldnjs1009
* gh-50095:
  Always match the links endpoint with GET

Closes gh-50095
2026-04-30 13:43:20 +01:00
Lee JiWon 2d3273e078 Always match the links endpoint with GET
The links endpoint only supports GET, so its matcher is now hardcoded
to GET. withHttpMethod(...) continues to apply only to endpoint paths
and the behaviour is documented on its javadoc.

Signed-off-by: Lee JiWon <dlwldnjs1009@gmail.com>

See gh-50095
2026-04-30 13:34:11 +01:00
Andy Wilkinson e7d11afe45 Merge branch '4.0.x'
Closes gh-50258
2026-04-30 12:38:09 +01:00
Andy Wilkinson a0a344f4b4 Merge branch '3.5.x' into 4.0.x
Fixes gh-50257
2026-04-30 12:35:30 +01:00
Andy Wilkinson d2b62bc64f Fix CORS configuration in /cloudfoundryapplication security filter
Previously, Spring Security wouldn't necessary allow cross-origin
requests to /cloudfoundryapplication, despite the underlying handler
mapping doing so.

Since 6.2, Spring Security enables CORS with default configuration if
there are any UrlBasedCorsConfigurationSource beans in the context.
This default configuration will then use a bean named
corsConfigurationSource as its source of CORS configuration. If it
doesn't find such a bean, it'll use the mvcHandlerMappingIntrospector
bean as a source. This latter case works as it means that the
CORS configuration of the underlying handler mapping is used.

In the case where a bean named corsConfigurationSource is used, this
will break /cloudfoundryapplication if the bean's CORS configuration
for /cloudfoundryapplication does not allow it. This has only been
a problem since Spring Boot 3.5 where we switched from using
ignoring() to using permitAll() to configure the security of
/cloudfoundryapplication.

To avoid a user-provided bean named corsConfigurationSource from
accidentally preventing access to /cloudfoundryapplication, we now
explicitly configure the filter chain's CORS support to use the same
CorsConfigurationSource as the handler mapping.

Fixes gh-50254
2026-04-30 12:29:34 +01:00
Andy Wilkinson b744839f53 Merge branch '4.0.x' 2026-04-29 12:25:44 +01:00
Andy Wilkinson bd568905c0 Merge branch '3.5.x' into 4.0.x 2026-04-29 12:25:35 +01:00
Andy Wilkinson efeb44a400 Test the Gradle plugin against Gradle 9.5.0
Closes gh-50238
2026-04-28 16:05:30 +01:00
Andy Wilkinson 17e73a04a5 Merge branch '4.0.x'
Closes gh-50237
2026-04-28 15:55:30 +01:00
Andy Wilkinson ec7b9d4124 Upgrade to Gradle 9.5.0
Closes gh-50236
2026-04-28 15:37:37 +01:00
Stéphane Nicoll 0e2f7e2b1a Merge branch '4.0.x'
Closes gh-50234
2026-04-28 13:54:58 +02:00
Stéphane Nicoll 813913ccb8 Merge branch '3.5.x' into 4.0.x
Closes gh-50233
2026-04-28 13:54:49 +02:00
Stéphane Nicoll fa8765717d Merge pull request #50225 from ares333
* patch-1:
  Polish "Keep milliseconds precision in ThreadPoolTaskScheduleBuilder"
  Keep milliseconds precision in ThreadPoolTaskScheduleBuilder

Closes gh-50225
2026-04-28 13:54:40 +02:00
Stéphane Nicoll 08c94440fd Polish "Keep milliseconds precision in ThreadPoolTaskScheduleBuilder"
See gh-50225
2026-04-28 13:49:59 +02:00