Adding arbitrary SOAP headers for SOAP Consumers
Configurations are provided on the GUI that automatically add some SOAP extension headers for users. If you have a requirement to use private SOAP headers, then use an advanced approach to manipulate the SOAP headers. In this instance, have the SOAP consumer work in Message mode instead of Payload mode.
A Message mode Client requires more SOAP-specific knowledge than a Payload mode Client, in exchange for more flexibilities and control over messages.
For example, in this SOAP Envelope message, for a Payload mode Client you only provide the
query:AdhocQueryRequest/
message piece after the outbound TPS. This is
three lines from the end of the example.
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Header>
<Action xmlns="http://www.w3.org/2005/08/addressing">urn:ihe:iti:2007:RegistryStoredQueryResponse</Action>
<MessageID xmlns="http://www.w3.org/2005/08/addressing">urn:uuid:f198b7ab-ab39-41bd-91f3-d170ba38c1e7</MessageID>
<To xmlns="http://www.w3.org/2005/08/addressing">http://www.w3.org/2005/08/addressing/anonymous</To>
<RelatesTo xmlns="http://www.w3.org/2005/08/addressing">urn:uuid:d5d34070-5d55-40f9-9763-1cb2a67fbd40</RelatesTo>
</soap:Header>
<soap:Body>
<query:AdhocQueryRequest/>
</soap:Body>
</soap:Envelope>
You only have direct control over the query:AdhocQueryRequest/
section.
For a Message-mode Client, you provide the complete SOAP envelope after the outbound TPS. This involves much detail about SOAP messages. For example, you can mistake the SOAP envelope namespace for version SOAP version 1.1 and 1.2.
You have full control over the code within the soap:Header
section.
Notes
You can prepare the messages at any point before the outbound TPS exits. You can also use any tool available in the engine, for example, translate, UPOC, and so on.
Clients ignore anything in private SOAP headers that are not publicly defined, even if you have also configured a public SOAP extension in the GUI. Configured public extensions, if there are conflicts with your custom SOAP headers, override user inputs. In this case, the SOAP extension is displayed on the GUI.