Spring / Spring Web Services
Merged upstreamFeatureMerged Sep 11, 2026

Allow anonymous WS-Addressing replies without MessageID

Corrected Spring WS's WS-Addressing 1.0 required-property validation so `MessageID` is required only when `ReplyTo` or `FaultTo` targets a non-anonymous, non-none endpoint.

spring-projects/spring-ws · #1848

SOAP interoperability fix

Spring Web Services now accepts valid WS-Addressing 1.0 requests without `MessageID` when replies are synchronous, anonymous, or intentionally discarded.

Problem

Spring WS defaults a missing `ReplyTo` to the anonymous endpoint, but its validation treated every non-null endpoint as requiring `MessageID`. Valid synchronous requests and requests whose response should be discarded were therefore rejected.

Approach

Updates `Addressing10.hasRequiredProperties` to distinguish anonymous and none endpoints from out-of-band destinations, with request and response fixtures covering explicit anonymous, implicit anonymous, none, and anonymous reply-plus-fault addressing.

Impact and scope

  • Restores standards-aligned handling for common synchronous SOAP request-response exchanges.
  • Allows fire-and-forget requests using the WS-Addressing none endpoint without an unnecessary message identifier.
  • Keeps `MessageID` enforcement for destinations where asynchronous reply or fault correlation is actually required.

Validation

  • Added focused XML fixtures and interceptor regressions for explicit anonymous `ReplyTo`, missing `ReplyTo`, none `ReplyTo`, and anonymous reply and fault endpoints without `MessageID`.
  • The focused Addressing 1.0 tests, full WS-Addressing package tests, `spring-ws-core` test suite, and module check completed successfully before merge.
  • A Spring maintainer polished and merged the authored fix, closed GH-1427, and publicly thanked Goutam. The maintainer-created merge commit is unsigned, so no verified-signature claim is made.