Как я могу настроить WSO2 ESB 4.0.3 для использования корпоративного прокси для доступа к внешним веб-сервисам (через HTTP) - PullRequest
2 голосов
/ 16 февраля 2012

Я пытаюсь получить доступ к внешним веб-службам (вне интрасети), используя WSO2 ESB 4.0.3 , но я не знаю, как настроить прокси-сервер, чтобы запрос вышел наружу.Я могу отправлять сообщения SOAP через HTTP из моего основного клиентского приложения Java без проблем;Я мог бы указать детали прокси, используя Apache HttpComponents .Итак, детали подключения в порядке.

Я пытался:

  1. Редактирование <transportSender name="http" ... > и указание таких параметров, как "http.proxyHost" и "http.proxyPort".

  2. Настройка глобального параметра <parameter name="Proxy"> ...

  3. Настройка HTTP Transport Sender и указание соответствующих параметров.

Лучшее, что я получил, было:

 ERROR_CODE = 101503, ERROR_MESSAGE = Connection refused or failed for : ...

Итак, что я сделал не так и что я должен вместо этого делать?Спасибо.

1 Ответ

3 голосов
/ 18 февраля 2012

Ваш прокси-сервер имеет какую-либо аутентификацию? Если да, и он использует Basic Auth, вам нужно указать следующие свойства перед отправкой запроса.

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

Первое свойство устанавливает транспортный заголовок HTTP Proxy-Authorization с именем пользователя и паролем, закодированными в base64, как ожидается при базовой аутентификации HTTP.

Второе свойство делает исходящий URL-адрес полным URL-адресом, понятным для Прокси-сервера.

Ниже приведен пример конфигурации прокси ...

<proxy name="StockQuoteProxy" startOnLoad="true">
<target>
<inSequence>
<property name="Proxy-Authorization" expression="fn:concat('Basic ', base64Encode('udayanga:test123'))" scope="transport"/>
<property name="POST_TO_URI" value="true" scope="axis2"/>
<send>
<endpoint>
<address uri="http://www.wso2.com:9000/services/SimpleStockQuoteService"/>
</endpoint>
</send>
</inSequence>
<outSequence>
<send/>
</outSequence>
</target>
<publishWSDL uri="file:repository/samples/resources/proxy/sample_proxy_1.wsdl"/>
</proxy>
...