This documentation is for WSO2 Enterprise Integrator version 6.2.0 . View documentation for the latest release.

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