spring-projects/spring-ws

SOAP WS-Addressing MessageId header is always required when receiving message using Addressing10 (http://www.w3.org/2005/08/addressing)

greenman18523 opened this issue · 0 comments

org.springframework.ws.soap.addressing.server.AddressingEndpointInterceptor creates the org.springframework.ws.soap.addressing.core.MessageAddressingProperties of the request using org.springframework.ws.soap.addressing.version.AddressingVersion.getMessageAddressingProperties(SoapMessage), and then checks if the required properties are present using org.springframework.ws.soap.addressing.version.AddressingVersion.hasRequiredProperties(MessageAddressingProperties)

getMessageAddressingProperties defaults replyTo and faultTo to anonymous (based in org.springframework.ws.soap.addressing.version.Addressing10.getDefaultReplyTo(EndpointReference)) thus when org.springframework.ws.soap.addressing.version.Addressing10.hasRequiredProperties(MessageAddressingProperties) is called the replyTo and faultTo are never null, but the code only checks if they are not null in order to require messageId.

The code should probably also check if they are anonymous (since anonymous URIs will results in a synchronous response, and not an out of band response) or none address (since reply will be discarded).