Custom SOAP headers can be added to a request by using the PayloadFactory Mediator in the proxy service as shown in the example below.
<?xml version="1.0" encoding="UTF-8"?> <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>