Security
- GHSA-rhhx-6j8h-8cvw – Unbounded per-locale OpenAPI cache allows memory exhaustion via
Accept-Language - GHSA-c925-vm88-mpp9 – Scalar starters trust client-supplied forwarded headers and render from a shared mutable bean
- CVE-2026-75838 – Cross-site scripting in the DOMPurify bundled with swagger-ui, addressed by upgrading swagger-ui to 5.32.14
Added
- #3340 – Describe
JsonNullablevalues without their Java wrapper - #3325 – Manage the swagger artifacts in
springdoc-openapi-bom, so that modules holding only the annotations stay in lockstep - #3321 – Add
springdoc.login-endpoint.username-exampleandspringdoc.login-endpoint.password-exampleto document the Spring Security login endpoint
Changed
- The Scalar starters no longer register forwarded-header handling. Set
server.forward-headers-strategy=framework(ornative) behind a trusted proxy - Add
springdoc.cache.max-entries(default100) to bound the per-locale OpenAPI cache - Document the security policy and the release versioning scheme
- #3351 –
java.time.Duration,LocalTimeandOffsetTimeare now resolved by swagger-core instead of being forced to a barestring, so they carry aformat(durationandpartial-timerespectively for the first two) - A property whose type only implements
Setindirectly (LinkedHashSet,TreeSet, …) is now described withuniqueItems: true, following swagger-api/swagger-core#5265 - Upgrade swagger-core to version 2.2.55
- Upgrade swagger-ui to version 5.32.14
Fixed
- #3320 –
@OrderandOrderedignored when applying customizers - #3319 – A
Pagenested in another schema is not replaced byPagedModel - #3313 – Springdoc auto-configurations rely on unspecified auto-configuration ordering
- #3331 – Validation annotations declared inside
Optionalparameters are dropped - #3322 – Validation annotations on a container's type argument leak between parameters
- #3315 – An OAS 3.1
JsonSchemacannot be cloned through JSON - #3314 –
Json Processing Exception occurredis logged for every constrained parameter whose schema is not aJsonSchema - #3300 – TYPE_USE annotations on
@ParameterObjectfields are not passed along - #3341 – Stabilize Spring Data
SortandPageableschema property order - #3338 – Kotlin nullability interpretation of the
Any?type - #3332 – The properties a Kotlin entity inherits from an
@Embeddableare missing from the Spring Data REST schemas - #3136 – A Spring Data REST association to a non-exported entity expands its
@EmbeddedIdand@MapsIdfields recursively in the response schemas - The Spring Data REST response post-processing rewrote an association property in place, so the
…Responserefs could leak into the schema shared with the request body representation - #3317 – Ignore an injected
HttpHeadersparameter explicitly. The reported failure needs Spring Framework 7, whereHttpHeadersstopped implementingMultiValueMap; on this line it is still covered by theMapentry of the ignore list, so this is regression cover rather than a behaviour change - Harden the Spring Data REST response post-processing against an
_embeddedschema that carries no properties
Full Changelog: v2.9.0...v2.9.1