7.2.0-RC1
- Improve WebAuthn Registration Page no-script Handling
- Support nonce-based Content Security Policy
- Set Content-Type to
application/x-www-form-urlencodedin OpaqueTokenIntrospector
- Bump
@antora/atlas-extension from 1.0.0-alpha.5 to 1.0.0-alpha.6 in /docs - Bump actions/upload-artifact from 7.0.1 to 7.0.2
- Bump antora from 3.2.0 to 3.2.1 in /docs
- Bump ch.qos.logback:logback-classic from 1.6.3 to 1.6.4
- Bump ch.qos.logback:logback-classic from 1.6.4 to 1.6.5
- Bump com.fasterxml.jackson:jackson-bom from 2.22.2 to 2.22.3
- Bump com.webauthn4j:webauthn4j-core from 0.31.10.RELEASE to 0.31.11.RELEASE
- Bump gradle-wrapper from 9.7.1 to 9.8.0
- Bump gradle-wrapper from 9.8.0 to 9.8.1
- Bump io.spring.develocity.conventions from 0.0.26 to 0.0.27
- Bump io.spring.gradle:spring-security-project-plugin from 1.0.19 to 1.0.20
- Bump io.spring.gradle:spring-security-release-plugin from 1.0.19 to 1.0.20
- Bump org-jetbrains-kotlin from 2.4.20 to 2.4.21
- Bump org.apache.httpcomponents.client5:httpclient5 from 5.6.4 to 5.6.5
- Bump org.hibernate.orm:hibernate-core from 7.4.10.Final to 7.4.11.Final
- Bump org.hibernate.orm:hibernate-core from 7.4.11.Final to 7.4.12.Final
- Bump org.hibernate.orm:hibernate-core from 7.4.12.Final to 7.4.13.Final
- Bump org.htmlunit:htmlunit from 5.5.0 to 5.6.0
- Bump org.mockito:mockito-bom from 5.23.0 to 5.24.0
- Bump org.seleniumhq.selenium:selenium-java from 4.48.0 to 4.50.0
- Bump org.seleniumhq.selenium:selenium-java from 4.48.0 to 4.51.0
- Bump org.slf4j:slf4j-api from 2.0.19 to 2.0.20
- Bump spring-io/spring-github-workflows/.github/workflows/spring-merge-dependabot-pr.yml from bf2c65c148fb74b6bd54417222662ef587463765 to 0c67c5e7c6641a18e76c520114ed0251303e77ed
- Bump spring-io/spring-github-workflows/.github/workflows/spring-merge-dependabot-pr.yml from fa7e8a8f981064983e9468225e052f14af7c67d4 to 0c09eb4023e17dd6ca395a0f4e406a4f7506a58d
- Bump spring-io/spring-github-workflows/.github/workflows/spring-merge-dependabot-pr.yml from fa7e8a8f981064983e9468225e052f14af7c67d4 to 798bca4d6aecf03e5166d85789c33c20a65499e1
- Bump spring-io/spring-github-workflows/.github/workflows/spring-merge-dependabot-pr.yml from fa7e8a8f981064983e9468225e052f14af7c67d4 to bf2c65c148fb74b6bd54417222662ef587463765
- Bump spring-io/spring-release-actions/compute-next-version from 0.0.6 to 0.0.7
- Bump spring-io/spring-release-actions/schedule-milestone from 0.0.6 to 0.0.7
- Bump spring-io/spring-security-release-tools/.github/actions/send-notification from 1.0.18 to 1.0.19
- Bump spring-io/spring-security-release-tools/.github/workflows/build.yml from 1.0.18 to 1.0.19
- Bump spring-io/spring-security-release-tools/.github/workflows/build.yml from 1.0.18 to 1.0.20
- Bump spring-io/spring-security-release-tools/.github/workflows/deploy-artifacts.yml from 1.0.18 to 1.0.19
- Bump spring-io/spring-security-release-tools/.github/workflows/deploy-artifacts.yml from 1.0.19 to 1.0.20
- Bump spring-io/spring-security-release-tools/.github/workflows/deploy-schema.yml from 1.0.18 to 1.0.19
- Bump spring-io/spring-security-release-tools/.github/workflows/deploy-schema.yml from 1.0.18 to 1.0.20
- Bump spring-io/spring-security-release-tools/.github/workflows/release-announcements-publish.yml from 1.0.18 to 1.0.20
- Bump spring-io/spring-security-release-tools/.github/workflows/test.yml from 1.0.18 to 1.0.20
- Bump tools.jackson:jackson-bom from 3.2.2 to 3.2.3
Thank you to all the contributors who worked on this release:
@ziqin
7.1.2
- Avoid spring-core in password encoder validation
- Downgrade to Jackson 3.1
- Empty or null scope claim in dynamic client registration request should be lenient
- Ensure WebSession ID is not changed after token refresh (Reactive)
- Fix to allow null servlet request/response in ServletOAuth2AuthorizedClientExchangeFilterFunction
- Header Writers should not corrupt Jetty HttpFields state in reactive ResponseBodyEmitter handlers
- NPE with authenticationValidator in OAuth2AuthorizationCodeRequestValidatingFilter
- TokenType reference comparison is used in BearerTokenAuthentication
- Bump
@antora/atlas-extension from 1.0.0-alpha.5 to 1.0.0-alpha.6 in /docs - Bump actions/setup-java from 6.0.0 to 6.0.1
- Bump antora from 3.2.0 to 3.2.1 in /docs
- Bump antora from 3.2.0-rc.3 to 3.2.0 in /docs
- Bump com.webauthn4j:webauthn4j-core from 0.31.9.RELEASE to 0.31.10.RELEASE
- Bump gradle-wrapper from 9.7.0 to 9.7.1
- Bump io-spring-javaformat from 0.0.47 to 0.0.48
- Bump io.spring.develocity.conventions from 0.0.25 to 0.0.26
- Bump io.spring.gradle:spring-security-release-plugin from 1.0.15 to 1.0.16
- Bump io.spring.gradle:spring-security-release-plugin from 1.0.16 to 1.0.17
- Bump io.spring.gradle:spring-security-release-plugin from 1.0.17 to 1.0.19
- Bump io.spring.nullability:io.spring.nullability.gradle.plugin from 0.0.14 to 0.0.15
- Bump io.spring.nullability:io.spring.nullability.gradle.plugin from 0.0.15 to 0.0.16
- Bump org-jetbrains-kotlin from 2.4.10 to 2.4.20
- Bump org.hibernate.orm:hibernate-core from 7.4.5.Final to 7.4.6.Final
- Bump org.hibernate.orm:hibernate-core from 7.4.6.Final to 7.4.7.Final
- Bump org.hibernate.orm:hibernate-core from 7.4.7.Final to 7.4.10.Final
- Bump org.slf4j:slf4j-api from 2.0.18 to 2.0.19
- Bump spring-io/spring-release-actions/compute-next-version from 0.0.5 to 0.0.6
- Bump spring-io/spring-release-actions/compute-next-version from 0.0.6 to 0.0.7
- Bump spring-io/spring-release-actions/get-todays-release-version from 0.0.5 to 0.0.6
- Bump spring-io/spring-security-release-tools/.github/actions/send-notification from 1.0.17 to 1.0.18
- Bump spring-io/spring-security-release-tools/.github/workflows/build.yml from 1.0.17 to 1.0.18
- Bump spring-io/spring-security-release-tools/.github/workflows/deploy-artifacts.yml from 1.0.15 to 1.0.17
- Bump spring-io/spring-security-release-tools/.github/workflows/deploy-schema.yml from 1.0.15 to 1.0.17
- Bump spring-io/spring-security-release-tools/.github/workflows/release-announcements-publish.yml from 1.0.17 to 1.0.18
- Bump spring-io/spring-security-release-tools/.github/workflows/release-announcements-stage.yml from 1.0.16 to 1.0.17
- Bump tools.jackson:jackson-bom from 3.1.6 to 3.1.7
- Configure for Reproducible Builds
- Manually Set RequestedSessionId in Tests
Thank you to all the contributors who worked on this release:
@evgeniycheban, @petergphillips, and @seonwooj0810
7.0.8
- Polish onetimetoken references
- AuthenticatorTransport#values should include SMART_CARD
- Empty or null scope claim in dynamic client registration request should be lenient
- Fix HeaderWriterFilter race condition during async requests
- Fix TokenType comparison logic
- Fix typos in Javadocs
- NPE with authenticationValidator in OAuth2AuthorizationCodeRequestValidatingFilter
- SecurityContextHolderThreadLocalAccessor should not share SecurityContext instance across threads
- Bump
@antora/atlas-extension from 1.0.0-alpha.5 to 1.0.0-alpha.6 in /docs - Bump antora from 3.2.0 to 3.2.1 in /docs
- Bump antora from 3.2.0-rc.2 to 3.2.0-rc.3 in /docs
- Bump antora from 3.2.0-rc.3 to 3.2.0 in /docs
- Bump gradle-wrapper from 8.14.5 to 8.14.6
- Bump io-spring-javaformat from 0.0.47 to 0.0.48
- Bump io.spring.develocity.conventions from 0.0.25 to 0.0.27
- Bump io.spring.gradle:spring-security-project-plugin from 1.0.19 to 1.0.20
- Bump io.spring.gradle:spring-security-release-plugin from 1.0.15 to 1.0.17
- Bump io.spring.gradle:spring-security-release-plugin from 1.0.17 to 1.0.20
- Bump org.slf4j:slf4j-api from 2.0.18 to 2.0.19
- Bump org.slf4j:slf4j-api from 2.0.19 to 2.0.20
- Bump spring-io/spring-release-actions/compute-next-version from 0.0.5 to 0.0.6
- Bump spring-io/spring-release-actions/get-todays-release-version from 0.0.5 to 0.0.6
- Bump spring-io/spring-security-release-tools/.github/actions/send-notification from 1.0.17 to 1.0.18
- Bump spring-io/spring-security-release-tools/.github/workflows/build.yml from 1.0.15 to 1.0.17
- Bump spring-io/spring-security-release-tools/.github/workflows/deploy-artifacts.yml from 1.0.17 to 1.0.18
- Bump spring-io/spring-security-release-tools/.github/workflows/deploy-schema.yml from 1.0.17 to 1.0.18
- Bump spring-io/spring-security-release-tools/.github/workflows/release-announcements-publish.yml from 1.0.17 to 1.0.18
- Bump spring-io/spring-security-release-tools/.github/workflows/test.yml from 1.0.17 to 1.0.18
- Bump spring-io/spring-security-release-tools/.github/workflows/test.yml from ed473b4dafba053c63a453d2d88a89df3b3e18b3 to 9ca0acea761aa79d71c78cc462048c49ed5c4230
- Configure for Reproducible Builds
Thank you to all the contributors who worked on this release:
@Kehrlann, @bdshadow, @ngocnhan-tran1996, @therepanic, and @ttddyy
v7.1.0-RC1
- Remove APIs marked as deprecated for removal in 7.1 #37455
- Consistently treat
0as no timeout inWebTestClient#37454 - Consistently treat
0as no timeout in MockMvc #37453 - Consistently treat
0as no timeout inRSocketServiceProxyFactory#37451 - Consistently treat
0as no timeout in HTTP client support #37425 - Update default settings in WebFlux multipart handling to align with Spring Boot and Tomcat #36928
- Apply proxy with system properties to the default client in ReactorClientHttpConnector #36654
- ProblemDetail instance field set from the current URL path, does not respect RFC #35969
- Support JsonUnit as an alternative to JSONassert for JSON comparison in test APIs #37490
- Add RetryState-aware overloads for
onRetrySuccessandonRetryFailure#37465 - Consistently treat
0as no timeout inAsyncServerResponse#37452 - Destroy all filters in
CompositeFilterdespite failures #37445 - Refine
DataAccessUtilsto improve null-safety #37438 - Omit zero
timeoutinDefaultRetryPolicy.toString()#37437 - Avoid splitting surrogate pairs in
StringUtils.truncate()#37435 - Support positive hexadecimal values in
NumberUtils#37434 - Support compilation of String concatenation with non-String operands in SpEL #37433
- Fix nullability in
LinkedCaseInsensitiveMap#37432 - Align parsing of
jdk.httpclient.allowRestrictedHeadersinJdkClientHttpRequestwith the JDK #37422 - Align restricted header handling in reactive
JdkClientHttpRequestwith non-reactiveJdkClientHttpRequest#37417 - Configure problem details rendering through WebMvcConfigurer #37416
- Fix missing
IDENTITY_FINISHcharacteristic inMergedAnnotationCollectors#37415 - Reject
@AliasForvalueandattributewhen both have length #37413 - Give ErrorResponse.Interceptor access to the current request #37410
- Honor
Map.equals()andMap.hashCode()contracts inCompositeMap#37401 - Support rendering problem details as views in
@ExceptionHandlermethods #37400 - Render exceptions not handled by ExceptionHandler methods as problem details #37398
- Further improve
AnnotationAttributes.toString()#37396 - Improve primitive array handling in
AnnotationAttributes.toString()#37395 - Exclude static methods from override check in
AnnotatedMethod#37390 - Include root cause when
MySQLMaxValueIncrementerfails to commit #37389 - Record MVC exceptions leading to HTTP 5xx as errors in observalibity stacks #37384
- Revise
getBeanNamesForTypecaching to coverResolvableType-based lookups as well #37382 - Support for Hibernate 8.0's BeanContainer SPI revision #37381
- Improve pre-bound JDBC Connection exception message #37356
- Reject Kotlin constructor default values in enhanced
@Configurationclasses #37350 - Rewrite CssLinkResourceTransformer for a single pass memory efficient parsing #37348
- Deprecate multi-batch
batchUpdatevariant inJdbcTemplate#37345 - Introduce entry-based DSL for
JdbcClientbatch updates #37341 - Honor
Collection.remove()contract inCompositeCollection#37332 - Exclude static methods from override check in
AnnotationsScanner#37319 - Support for JPA 4.0 package and module descriptor discovery #37316
- Set first batch arg once while executing batch with generated keys #37308
- Improve JdbcClient to align BatchSpec with StatementSpec #37307
- Include enum array attributes in
TypeNotPresentExceptionprobing #37153 - Misleading port number defaults when parsing "Forwarded for" and "Forwarded by" header information #37114
- Remove MatchableHandlerMapping #37093
- Optimize get for all values in ServletRequestHeadersAdapter and ServletResponseHeadersAdapter #37080
- RestClient.Builder.configureMessageConverters disables the implicit registration of default converters. #36747
- Avoid update to request "Content-Type" for characterEncoding in ServletServerHttpRequest #36426
- Remove code to set the ServletResponse contentType and characterEncoding properties from the "Content-Type" header #36352
- Avoid
intoverflow for largeDurationtimeouts inClientHttpRequestFactoryimplementations #37427 - Annotations are inherited from package-private method in superclass in different package #37408
- MVC MultipartParser requires Publisher on the classpath #37353
- Fix container detection in
RepeatableContainers.standardRepeatables()#37326
Thank you to all the contributors who worked on this release:
@EsmaeilChitgar, @cookie-meringue, @guanchengang, @itsmevichu, @junhyeong9812, @lejuho, @ngocnhan-tran1996, @quaff, @rene-schakmann, and @xoruddl
v7.0.10
- Align
DelegatingMessageSourcefallback implementation withAbstractMessageSource#37383 HttpEntity(T, MultiValueMap)stores anHttpHeadersunchecked, causingIncompatibleClassChangeErrorinsideRestTemplate#37358- Recognize relocated Mockito
MockAccessinterface inProxyProcessorSupport#37342 - Runtime compatibility with JPA 4.0 M7 and corresponding Hibernate 8.0 snapshots #37315
- Avoid Kotlin reflection in MethodParameter for non-suspending functions #37300
- Revise underscore naming fallback in SimplePropertyRowMapper #37297
- Avoid useless queue ops in
ConcurrentLruCache.clear()#37292 PathMatchingResourcePatternResolvermisses jars onjava.class.pathwhose path contains%#37280- Remove redundant whitespace in exception messages #37277
- OpenInView does no longer work with HibernateTransactionManager #37273
- Lazily handle setClientInfo/setNetworkTimeout in LazyConnectionDataSourceProxy #37261
- Avoid redundant filtering in FilteredMap.size() #37256
- Support NaN and inifinite float values in
toString()for synthesized annotations #37244 - Use
ArrayListinstead ofLinkedListinCompositeRetryListener#37231 redirectedUrl()argument inMockMvcResultMatchersshould be@Nullable#37230- Published Gradle module file is missing
javadocElementsandsourcesElements#37209 - Introduce a builder for
SpelParserConfiguration#37187 - Protobuf support classes all implement getMessageBuilder() #37147
- Allow null contextPath in ServerHttpRequest.Builder #37099
- Log broker availability events as String messages #36856
- Avoid unnecessary dependent-bean registration for autowire-by-type #37424
- Handle zero readTimeout in JdkClientHttpConnector #37412
- Race condition in PartGenerator.CreateFileState can lose the completion signal #37409
- Paused executor with late shutdown leaks its worker thread (and the closed context) after close #37406
- Fix hanging retries for Flux-returning methods with caching #37403
- Avoid serving stale values after failed refill in
AbstractIdentityColumnMaxValueIncrementer#37402 - Copy cookies in
RenderingResponse.from()#37378 - Avoid phantom keys in
LinkedCaseInsensitiveMap.computeIfAbsent#37351 - Fix single-value adaptation for primitive array types in
TypeMappedAnnotation#37349 - CssLinkResourceTransformer fails for invalid CSS links #37336
- Fix cached ID reuse after commit failure in MySQLMaxValueIncrementer #37322
- Fix connection leak in MySQLMaxValueIncrementer #37321
@CacheEvicttruncatesFluxresults to the first element #37309ConcurrentLruCache.clear()can miss entries added while it's running #37287- Enforce disk usage limit when spilling part to disk #37285
- Prevent double size decrement in
ConcurrentLruCache#37268 - LogAccessor.debug(CharSequence) eagerly renders LogMessage since spring-core 7 switched from spring-jcl to commons-logging #37266
- WebFlux loses empty multipart file when the file part is not last. #37264
- Complete empty Uni instances from the Mutiny reactive adapter #37259
- DefaultAsyncServerResponse.writeAsync() discards previously configured AsyncWebRequest timeout #37257
- Provide missing native image hints for proxied hibernate 8 query types #37251
- Provide missing native image hint for StatelessSession proxy created by SharedEntityManagerCreator. #37249
- Provide missing native image reflection hint for hibernate PersistenceUnitInfoDescriptor. #37247
- Sort duplicate key codes in
SQLErrorCodes#37235 - Handle zero readTimeout in JdkClientHttpRequestFactory #37234
- Wrong reconnection attempt count in ReactorNettyTcpClient #37223
- Stored procedure OUT parameter values are lost outside a transaction as of 7.0.9 #37221
- Avoid int overflow in expiration time calculations in MockMvc and FlashMap #37208
- ScheduledAnnotationBeanPostProcessor doesn't correctly support bean destruction #37207
- Normalize function return parameter lookup in
CallMetaDataContext#37206 - Fix out-of-bounds read for truncated percent-escape in opaque host #37203
- ClassFileTransformerAdapter deadlocks between two persistence units under load-time weaving #37199
- Fix Kotlin value class handling for suspending AOP methods #37191
- Update to NullAway 0.14.0 and fix new warnings #37188
- ProtobufJsonEncoder emits JSON array when media type is ndjson #37158
- streamingMediaTypes in ProtobufJsonEncoder not a subset of encodableMimeTypes #37154
- Align
DataBufferUtils$WriteCompletionHandlerexception handling with theread()side #37145 DataBufferUtils.read()with NettyDataBuffer on JDK 25 hangs indefinitely #37143- Release queued body token buffers on multipart cancel #37115
- Preserve async API version resolver order #37096
- ClientResponse.mutate() builder can modify originalResponse headers. #37086
- Custom reason is overwritten by i18n message in ResponseStatusException.updateAndGetBody() #36984
- Generate compilable code for non-finite floating-point values #36965
- Render parameter type names in ClassFileMethodMetadata #36919
- Honor
sourceStartoffset inAbstractXMLStreamReader#getTextCharacters#36914 - Fix reserveMethodNames to reserve each supplied name #36912
- Replace thread-unsafe SimpleDateFormat with DateTimeFormatter in AbstractMockHttpServletRequestBuilder #36772
MockHttpServletRequest.isRequestedSessionIdValid()does not follow Servlet 6.1 Javadoc #36631- Map version from
@HttpExchangeto RequestMappingInfo #36602 - Ensure that ConversionService.canConvert(Enum) no longer throws an exception #34532
- Fix incorrect class names in WebFlux and MVC docs #37467
- Document the XXE threat model of SourceHttpMessageConverter #37407
- Update instructions for importing projects into Eclipse IDE #37397
- Fix syntax errors in the reference manual #37392
- Fix Kotlin example in Spring MVC test docs #37388
- Document usage of
typeattribute in JSP<form:input>tag #37376 - Make
CONTRIBUTING.mdself-contained and addAGENTS.md#37372 - Clarify ConcurrentReferenceHashMap reference semantics #37357
- Add missing enclosing single quotes in Javadoc #37338
- Fix MockMvc async requests example in documentation #37318
- Add closing braces to examples #37305
- Fix typos in Javadoc #37229
- Further updates to Data Binding Content in Web Sections of Documentation #37228
- Add missing closing parenthesis in WebFlux config reference example #37163
- Use
<<id,text>>instead ofxref:for local links in reference docs #37161 - Fix broken internal xref links in reference docs #37152
- Fix Kotlin examples in the reference manual #37101
- Document combining
@Retryablewith proxy-based features #37005 - Update recommendations for web data binding #36789
Thank you to all the contributors who worked on this release:
@Gabriel-Gerhardt, @Gimini-3, @SebTardif, @a-kogun, @cj848, @cookie-meringue, @dmitrysulman, @garvit-joshi, @geonheeryu, @guanchengang, @hunseonglee, @jhan0121, @junhyeong9812, @kodacme, @lejuho, @moonfruit, @msridhar, @ngocnhan-tran1996, @noojung, @renatomameli, @rene-schakmann, @shaggyinsomniac, @timtebeek, and @xoruddl
v4.2.0-RC1
- Apply the readAllBytes() optimization to deflated nested jar entries #52285
- Improve uber jar performance by looking up classes and resources directly in nested jars #52246
- Support RABBITMQ_DEFAULT_VHOST in Docker Compose RabbitMQ integration #51940
- Support random root passwords in MariaDB and MySQL Docker Compose integration #51938
- Improve auto-configuration sorting performance #51867
- Allow properties migrator to fail application startup #51855
- Add property to enable Caffeine async cache mode #51844
- Check resource existence once when looking for deleted files #51841
- Avoid parsing nested jar URLs for cached resource lookups #51827
- Support provided-scope libraries when extracting an executable war #51372
- Switch to ubuntu-resolute-builder as the default builder #51249
- Provide a callback for customizing Tomcat's Server #50259
- JarUrlClassLoader rejects valid class names since #52271 #52284
- Resources containing spaces cannot be read from executable jars after #52246 #52280
- gRPC client 'grpc' load balancing fails to bind with a NullPointerException when no child policies are configured #52269
- OriginTrackedResource does not implement equals correctly #52268
- OriginTrackedPropertiesLoader drops properties whose name starts with # or ! #52266
- Logback ColorConverter unnecessarily parses its options for every log event #52262
- JWTs are rejected when issuer-uri is empty and jwk-set-uri is set #52261
- Package manifest attributes are missing for nested jars without directory entries #52259
- Empty system property in TestPropertyValues is cleared instead of being restored to its empty value #52209
- Graceful shutdown of Tomcat or Jetty may call back with REQUESTS_ACTIVE when stop is called immediately after shutDownGracefully on an idle server #52199
- NettyWebServer stop may hang when called immediately after shutDownGracefully #52198
- Prevent gRPC client properties from overriding user customizations #52194
- MongoDB fails to connect when credentials contain a space #52169
- Authentication fails when password configured in spring.elasticsearch.uris contains a colon #52167
- Logging can be lost when a context is paused by the test context framework #52089
- Fractions of a second are handled incorrectly when configuring gRPC service config durations #52087
- Docker Compose support for MongoDB fails to connect when credentials contain a character that requires URL encoding #52085
- Jersey does not use the endpoint ObjectMapper when Actuator is running on a separate port #51983
- Configuration property descriptions may be lost when building incrementally with Gradle #51926
- BasicJsonParser mishandles escaped characters in nested lists and maps #51909
- Zero week value conversion fails with 'intValue cannot be extracted from WEEKS' exception #51895
- App fails to start when using DevTools and manually configuring JDBC or R2DBC without spring-boot-jdbc or spring-boot-r2dbc #51891
- Docker Compose support incorrectly recognizes MARIADB_ALLOW_EMPTY_PASSWORD instead of MARIADB_ALLOW_EMPTY_ROOT_PASSWORD #51889
- Auto-configured Kotlinx Serialization JSON codec customization is not applied #51878
- Unavoidable warning when using ubuntu-resolute-builder with tiny run image #51851
- Fix typo in gRPC testing documentation #52188
- Fix Gradle example for servlet-based gRPC servers #52086
- Fix actuator endpoint property names in Javadoc #51887
- Document InetAddressFilter limitations with respect to proxy servers #51864
- Upgrade to Byte Buddy 1.18.15 #52215
- Upgrade to Caffeine 3.3.1 #52185
- Upgrade to Cassandra Driver 4.19.4 #52263
- Upgrade to Classmate 1.8.0 #52186
- Upgrade to Commons Lang3 3.21.0 #52058
- Upgrade to Couchbase Client 3.13.0 #52216
- Upgrade to Elasticsearch Client 9.5.5 #52217
- Upgrade to Groovy 5.1.3 #52059
- Upgrade to Grpc Java 1.84.1 #52176
- Upgrade to H2 2.5.252 #52060
- Upgrade to Hibernate 7.4.13.Final #52144
- Upgrade to Hibernate Validator 9.1.5.Final #52218
- Upgrade to HtmlUnit 5.6.0 #52145
- Upgrade to HttpClient5 5.6.5 #52146
- Upgrade to HttpCore5 5.4.4 #52063
- Upgrade to Infinispan 16.3.0 #52064
- Upgrade to Jackson 2 Bom 2.21.7 #52065
- Upgrade to Jackson Bom 3.1.7 #52066
- Upgrade to Jakarta Json Bind 3.0.4 #52220
- Upgrade to Jaybird 6.0.7 #52147
- Upgrade to Jedis 8.0.2 #52221
- Upgrade to Jersey 4.0.3 #52067
- Upgrade to Jetty 12.1.14 #52068
- Upgrade to jOOQ 3.21.9 #52069
- Upgrade to Kafka 4.4.0 #52247
- Upgrade to Kotlin 2.4.21 #52231
- Upgrade to Lettuce 7.8.0.RELEASE #52104
- Upgrade to Logback 1.6.5 #52070
- Upgrade to Micrometer 1.18.0-RC1 #52100
- Upgrade to Micrometer Tracing 1.8.0-RC1 #52138
- Upgrade to Mockito 5.24.0 #52071
- Upgrade to MongoDB 5.13.0 #52200
- Upgrade to MSSQL JDBC 13.6.1.jre11 #52232
- Upgrade to MySQL 26.7.0 #52230
- Upgrade to Neo4j Java Driver 6.3.0 #52105
- Upgrade to Netty 4.2.19.Final #52072
- Upgrade to OpenTelemetry 1.67.0 #52248
- Upgrade to Postgresql 42.7.14 #52110
- Upgrade to Prometheus Client 1.10.0 #52264
- Upgrade to Protobuf Java 4.36.2 #52177
- Upgrade to Protobuf Maven Plugin 5.1.11 #52073
- Upgrade to Pulsar 4.2.5 #52074
- Upgrade to Qpid ProtonJ2 1.4.0 #52149
- Upgrade to R2DBC MSSQL 1.0.7.RELEASE #52075
- Upgrade to R2DBC Postgresql 1.1.3.RELEASE #52076
- Upgrade to R2DBC Proxy 1.1.7.RELEASE #52223
- Upgrade to RabbitMQ AMQP Client 1.6.0 #52150
- Upgrade to RabbitMQ Client 5.37.0 #52077
- Upgrade to RabbitMQ Stream Client 1.12.0 #52151
- Upgrade to Reactor Bom 2026.0.0-RC1 #51973
- Upgrade to Selenium 4.51.0 #52152
- Upgrade to Selenium HtmlUnit 4.51.0 #52153
- Upgrade to SLF4J 2.0.20 #52079
- Upgrade to Spring AMQP 4.2.0-RC1 #51974
- Upgrade to Spring Batch 6.1.0-RC1 #52139
- Upgrade to Spring Data Bom 2026.1.0-RC1 #51981
- Upgrade to Spring Framework 7.1.0-RC1 #51975
- Upgrade to Spring GraphQL 2.1.0-RC1 #52101
- Upgrade to Spring gRPC 1.1.2 #51976
- Upgrade to Spring HATEOAS 3.2.0-RC1 #52102
- Upgrade to Spring Integration 7.2.0-RC1 #51977
- Upgrade to Spring Kafka 4.2.0-RC1 #51978
- Upgrade to Spring LDAP 4.2.0-RC1 #52140
- Upgrade to Spring Pulsar 2.0.8 #52103
- Upgrade to Spring RESTDocs 4.1.0-RC1 #51979
- Upgrade to Spring Security 7.2.0-RC1 #52141
- Upgrade to Spring Session 4.2.0-RC1 #52142
- Upgrade to Spring WS 5.1.0-RC1 #51980
- Upgrade to Tomcat 11.0.27 #52187
- Upgrade to Versions Maven Plugin 2.23.0 #52154
- Upgrade to WebJars Locator Lite 1.1.5 #52080
- Upgrade to XmlUnit2 2.14.0 #52081
Thank you to all the contributors who worked on this release:
@CCCLL, @LindseyZ1205, @MycroCosmo, @NotAFlightRisk, @aalsanie, @anthonydahanne, @challa, @crapxxi, @dmitrysulman, @galenzo17, @geonheeryu, @hunseonglee, @janwaleed09, @khopland, @ksky8864, @lavinhoque33, @move-hoon, @ngocnhan-tran1996, @noojung, @ohchanKyu, @padosol, @rvullriede, @ryujungkyun, @scordio, @sharanrenukeshbharmshetty, @skdas20, @timtebeek, @xoruddl, and @zhoubiao188
v4.0.9
- Add TWENTY_SEVEN to JavaVersion enum #51422
- JWTs are rejected when issuer-uri is empty and jwk-set-uri is set #52249
- Package manifest attributes are missing for nested jars without directory entries #52244
- OriginTrackedPropertiesLoader drops properties whose name starts with # or ! #52207
- OriginTrackedResource does not implement equals correctly #52205
- Graceful shutdown of Tomcat or Jetty may call back with REQUESTS_ACTIVE when stop is called immediately after shutDownGracefully on an idle server #52195
- Empty system property in TestPropertyValues is cleared instead of being restored to its empty value #52125
- MongoDB fails to connect when credentials contain a space #52121
- NettyWebServer stop may hang when called immediately after shutDownGracefully #52119
- Authentication fails when password configured in spring.elasticsearch.uris contains a colon #52047
- Logging can be lost when a context is paused by the test context framework #51959
- Docker Compose support for MongoDB fails to connect when credentials contain a character that requires URL encoding #51939
- Jersey does not use the endpoint ObjectMapper when Actuator is running on a separate port #51937
- BasicJsonParser mishandles escaped characters in nested lists and maps #51907
- Zero week value conversion fails with 'intValue cannot be extracted from WEEKS' exception #51892
- App fails to start when using DevTools and manually configuring JDBC or R2DBC without spring-boot-jdbc or spring-boot-r2dbc #51872
- Docker Compose support incorrectly recognizes MARIADB_ALLOW_EMPTY_PASSWORD instead of MARIADB_ALLOW_EMPTY_ROOT_PASSWORD #51870
- Auto-configured Kotlinx Serialization JSON codec customization is not applied #51842
- NullPointerException can be thrown when using uber jars due to a race condition in NestedJarFileResources #51744
- DevTools does not detect a reactive web environment #51708
- Connection fails when rabbitmq Docker Compose service is configured to use SSL #51666
- When server.reactive.session.cookie.same-site is not set, session cookies have no SameSite attribute #51636
- OAuth2 resource server ignores authorities-claim-delimiter when set on its own #51619
- In a reactive web application, Cloud Foundry security integration returns a 500 rather than a 503 when the cloud controller URL is unavailable #51613
- Some assertion messages name the wrong parameter #51568
- SBOM-related manifest attributes are missing from Maven-packaged wars #51551
- Docker Compose integration for RabbitMQ skips credential fallbacks when an environment variable has no value #51546
- jarmode tools commands print stacktrace instead of an error message #51540
- Layer temp file is not deleted when layer creation fails #51519
- NestedByteChannel.read(ByteBuffer) incorrectly returns 0 when buffer could not be filled #51515
- Customizer null checks in HTTP client builders assert the wrong attribute #51509
- developmentOnly and testAndDevelopmentOnly configurations do not specify any attributes causing potential resolution problems #51492
- SQL Server Docker Compose integration may duplicate the JDBC URL's encrypt parameter #51467
- SSL host config customizations may be lost during Tomcat initialization #51466
- OAuth2ClientProperties are not available when a user-defined ClientRegistrationRepository bean is provided #51447
- Source is not closed consistently by all JSON marshal testers #51417
- JmsHealthIndicator leaks watchdog threads if start fails immediately #51412
- File handle in SpringBootJoranConfigurator should be closed #51398
- Validation of deprecated io.buildpacks.stack.id is too aggressive #51390
- SSL host config customizations are lost when reloading SSL bundles #51290
- Docker Compose ProcessRunner can hang or leave orphan processes #50963
- Configuration property descriptions may be lost when building incrementally with Gradle #50489
- Fix actuator endpoint property names in Javadoc #51869
- Fix broken links from reference documentation to external Javadoc #51815
- Remove reference to AppOptics in the reference guide as it has retired #51807
- Fix broken links #51791
- Update Spring Framework reference links #51750
- Maven plugin documentation incorrectly references remote restart property #51743
- Update testcontainers javadoc links #51739
- Fix documented default of spring.test.database.replace #51709
- Correct Jackson 3 Javadoc links #51660
- Fix typo in deprecated Pushgateway base-url property metadata #51627
- Remove references to Spring Data Geode #51563
- Fix typos in service containers javadoc and reference documentation #51431
- Document support for Java 27 #51424
- Document SAML2 back-off in WebFlux security documentation #51421
- Remove reference to removed SpringBootWebSecurityConfiguration #51411
- Upgrade to Build Helper Maven Plugin 3.6.2 #51984
- Upgrade to Cassandra Driver 4.19.4 #52273
- Upgrade to Couchbase Client 3.9.3 #51985
- Upgrade to FreeMarker 2.3.35 #51986
- Upgrade to GraphQL Java 25.1 #52106
- Upgrade to Hibernate 7.2.25.Final #51987
- Upgrade to Hibernate Validator 9.0.2.Final #52212
- Upgrade to Jackson 2 Bom 2.21.7 #51988
- Upgrade to Jackson Bom 3.1.7 #51989
- Upgrade to Jakarta Json Bind 3.0.4 #52213
- Upgrade to Jaybird 6.0.7 #52155
- Upgrade to Jersey 4.0.3 #51992
- Upgrade to Jetty 12.1.14 #51993
- Upgrade to jOOQ 3.19.39 #51994
- Upgrade to Liquibase 5.0.4 #51995
- Upgrade to Lombok 1.18.48 #51996
- Upgrade to Micrometer 1.16.8 #52093
- Upgrade to Micrometer Tracing 1.6.8 #52130
- Upgrade to Netty 4.2.19.Final #51997
- Upgrade to Postgresql 42.7.14 #52107
- Upgrade to R2DBC MariaDB 1.3.2 #51998
- Upgrade to R2DBC MSSQL 1.0.7.RELEASE #51999
- Upgrade to R2DBC Postgresql 1.1.3.RELEASE #52000
- Upgrade to R2DBC Proxy 1.1.7.RELEASE #52214
- Upgrade to Reactor Bom 2025.0.8 #51949
- Upgrade to SLF4J 2.0.20 #52001
- Upgrade to Spring AMQP 4.0.6 #51950
- Upgrade to Spring Batch 6.0.6 #52131
- Upgrade to Spring Data Bom 2025.1.8 #51955
- Upgrade to Spring Framework 7.0.10 #51951
- Upgrade to Spring GraphQL 2.0.6 #52094
- Upgrade to Spring HATEOAS 3.0.6 #52132
- Upgrade to Spring Integration 7.0.7 #52095
- Upgrade to Spring Kafka 4.0.8 #51952
- Upgrade to Spring LDAP 4.0.6 #52210
- Upgrade to Spring Pulsar 2.0.8 #52096
- Upgrade to Spring RESTDocs 4.0.2 #51953
- Upgrade to Spring Security 7.0.8 #52133
- Upgrade to Spring WS 5.0.3 #51954
- Upgrade to Tomcat 11.0.27 #52183
- Upgrade to WebJars Locator Lite 1.1.5 #52003
- Upgrade to XML Maven Plugin 1.2.2 #52004
Thank you to all the contributors who worked on this release:
@2heunxun, @CCCLL, @CHISANW, @COBI-98, @DevJunz, @JunggiKim, @LindseyZ1205, @MacAlsandair, @SebTardif, @dlwldn30, @dmitrysulman, @fabio-grassi, @galenzo17, @icikle, @janwaleed09, @kdomo, @khopland, @ksky8864, @lavinhoque33, @msridhar, @ngocnhan-tran1996, @noojung, @ohchanKyu, @padosol, @piyushrajyadav, @rvullriede, @ryujungkyun, @scordio, @scottfrederick, @timtebeek, @vlsi, @xoruddl, @xxxxxxjun, @yyuneu, and @zhoubiao188