Настройка работы через прокси при использовании транспорта HTTP

Автор: Владимир Меркулов
Компания: Janet systems

Начиная с ревизии фреймворка r102, при настройке взаимодействия между модулями и/или клиентом iJaNet по протоколу HTTP можно использовать прокси-сервер.
Для этого необходимо в блоке настройки транспорта указать следующие дополнительные параметры:

Параметр Тип Описание
transport.http.proxyHost string Имя или IP адрес хоста прокси-сервера
transport.http.proxyPort int Номер порта прокси-сервера
transport.http.proxyUser string Имя пользователя для авторизации
transport.http.proxyPassword string Пароль для авторизации
transport.http.proxyDomain string Домен для авторизации (требуется для некоторых Microsoft-specific конфигураций)
При обработке параметров, относящихся к прокси, действуют следующие правила:
  1. Если параметра transport.http.proxyHost не задан, то соединение через прокси не используется и остальные параметры не считываются
  2. Если параметра transport.http.proxyHost задан, но параметр transport.http.proxyPort отсутствует, то это приводит к ошибке и блокирует передачу данных
  3. Если параметра transport.http.proxyUser не задан, то соединение через прокси происходит без авторизации.

Параметр transport.http.proxyDomain поддерживается только в реализации iJaNet V5 Framework для .NET, т.к. там в настройке прокси-соединений он явно предусмотрен. На Java такого параметра не предусмотрено, поэтому задавать его для соединений типа "модуль-модуль" ни на что не влияет.

ВАЖНО: В отличие параметров сериализации, которые не зависят от транспорта передачи данных, параметры прокси-сервера задавать на уровне глобальных параметров модуля нельзя (вернее, это ник чему не приведет). Параметры соединения через прокси работают только в том случае, если они заданы как параметры транспорта внутри какой-либо конкретной ссылки на удаленный модуль. Также очевидно, что настройки работы через прокси имеют смысл только для HTTP-транспорта.

Пример простого использования прокси:

 1 <remote-module-ref>
 2 
 3     <transport>
 4         <transport-name>http</transport-name>
 5         <parameters>
 6             <param name="transport.http.url" type="string">http://server.company.com:8080/janet/service</param>
 7             <param name="transport.http.proxyHost" type="string">proxy.company.com</param>
 8             <param name="transport.http.proxyPort" type="int">3128</param>
 9         </parameters>
10     </transport>
11 
12     ...(здесь описания прокси-служб)...
13 
14 </remote-module-ref>

Пример использования прокси с авторизацией:

 1 <remote-module-ref>
 2 
 3     <transport>
 4         <transport-name>http</transport-name>
 5         <parameters>
 6             <param name="transport.http.url" type="string">http://server.company.com:8080/janet/service</param>
 7             <param name="transport.http.proxyHost" type="string">proxy.company.com</param>
 8             <param name="transport.http.proxyPort" type="int">3128</param>
 9             <param name="transport.http.proxyUser" type="string">iivanov</param>
10             <param name="transport.http.proxyPassword" type="string">123456</param>
11         </parameters>
12     </transport>
13 
14     ...(здесь описания прокси-служб)...
15 
16 </remote-module-ref>

Also available in: HTML TXT