This documentation is for WSO2 Enterprise Service Bus version 4.9.0 . View documentation for the latest release.

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

If WSO2 ESB is behind a firewall, your proxy service might need to talk to a server through a proxy server, which might require HTTP basic authentication.

To configure the ESB to communicate with the proxy server:

  1. In <PRODUCT_HOME>/repository/conf/axis2/axis2.xml, edit the transportSender configuration of the http transport to specify the proxy server as follows:

    <transportSender name="http" class="org.apache.synapse.transport.passthru.PassThroughHttpSender">
    	<parameter name="non-blocking" locked="false">true</parameter>
    	<parameter name="http.proxyHost" locked="false">localhost</parameter>
    	<parameter name="http.proxyPort" locked="false">8080</parameter>
    </transportSender>
  2. In the Synapse configuration of the proxy service that sends messages to this proxy server, set the following two properties before the send mediator:

    <syn:property name="Proxy-Authorization" expression="fn:concat('Basic ', base64Encode('userName:password'))" scope="transport"/>
    <syn:property name="POST_TO_URI" value="true" scope="axis2"/>

    The first property sets the Proxy-Authorization HTTP transport header with the base64 encoded user name and password as expected by the HTTP basic authentication. The second property makes the outgoing URL a complete URL understandable by the proxy server.

For example, in normal scenarios the outgoing request is sent as following:

POST /services/SimpleStockQuoteService HTTP/1.1

But the proxy server requires sending the actual URL:

POST [http://localhost:9000/services/SimpleStockQuoteService] HTTP/1.1

Following is a sample proxy service configuration that sets these two properties:

<proxy name="StockQuoteProxy" startOnLoad="true" xmlns="http://ws.apache.org/ns/synapse">
	<target>
		<inSequence>
			<property name="Proxy-Authorization" expression="fn:concat('Basic ', base64Encode('supun:test123'))" scope="transport"/>
			<property name="POST_TO_URI" value="true" scope="axis2"/>
			<send>
				<endpoint name="endpoint_urn_uuid_379C485AD3CB65037F10216600509076498395882">
					<address uri="http://localhost:9000/services/SimpleStockQuoteService"/>
				</endpoint>
			</send>
		</inSequence>
		<outSequence>
			<send/>
		</outSequence>
	</target>
	<publishWSDL uri="file:repository/samples/resources/proxy/sample_proxy_1.wsdl"/>
</proxy>
  • No labels