This documentation is for WSO2 Enterprise Service Bus version 5.0.0. For the latest ESB, view the latest WSO2 Enterprise Integrator documentation.

All docs This doc
||
Skip to end of metadata
Go to start of metadata

You can add custom SOAP headers using the following methods:

Using the Payload Factory mediator

You can add custom SOAP headers to a request by using the PayloadFactory Mediator in the proxy service as shown in the example below.

<definitions xmlns="http://ws.apache.org/ns/synapse">
    <proxy name="StockQuoteProxy"
         transports="https http"
         startOnLoad="true"
         trace="disable">
         <description/>
         <target>
              <endpoint>
                   <address uri="http://localhost:9001/services/SimpleStockQuoteService"/>
              </endpoint>
              <inSequence>
                   <log level="full"/>
                   <payloadFactory media-type="xml">
                        <format>
                              <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
                                    xmlns:xsd="http://services.samples/xsd"
                                    xmlns:ser="http://services.samples">
                                    <soapenv:Header>
                                           <ser:authenticationRequest>
                                                   <userName xmlns="">$1</userName>
                                                   <password xmlns="">$2</password>
                                           </ser:authenticationRequest>
                                    </soapenv:Header>
                                    <soapenv:Body>
                                            <ser:getQuote>
                                                   <ser:request>
                                                       <xsd:symbol>$3</xsd:symbol>
                                                   </ser:request>
                                           </ser:getQuote>
                                    </soapenv:Body>
                              </soapenv:Envelope>
                        </format>
                        <args>
                              <arg value="punnadi"/>
                              <arg value="password"/>
                              <arg value="hello"/>
                        </args>
                   </payloadFactory>
              </inSequence>
              <outSequence>
                   <send/>
              </outSequence>
         </target>
         <publishWSDL uri="file:repository/samples/resources/proxy/sample_proxy_1.wsdl"/>
    </proxy>
    <sequence name="fault">
         <log level="full">
              <property name="MESSAGE" value="Executing default "fault" sequence"/>
              <property name="ERROR_CODE" expression="get-property('ERROR_CODE')"/>
              <property name="ERROR_MESSAGE" expression="get-property('ERROR_MESSAGE')"/>
         </log>
         <drop/>
    </sequence>
    <sequence name="main">
         <log/>
         <drop/>
    </sequence>
</definitions>

Using the Script mediator

You can add custom SOAP headers to a request by using the addHeader(mustUnderstand, content) of the Script Mediator in the proxy service as shown in the example below.

<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="CustomSOAPHeaderProxy"
       startOnLoad="true"
       statistics="disable"
       trace="disable"
       transports="http,https">
   <target>
      <inSequence>
         <log level="full">
            <property name="Message" value="IncomingRequest"/>
         </log>
         <script language="js">mc.addHeader(false, &lt;ns:sampleCustomHeader xmlns:ns="gsb:http://wso2.org/sample"&gt;&lt;ns:customInfo&gt;CustomHeader&lt;/ns:customInfo&gt;&lt;/ns:sampleCustomHeader&gt;);</script>
         <log level="full">
            <property name="Message" value="UpdatedMessage"/>
         </log>
         <drop/>
      </inSequence>
   </target>
   <description/>
</proxy>
  • No labels