2015-09-14 3 views
0

APIM шлюз устанавливает заголовок хоста в качестве хост: порт для вызова бэкенд, например:WSO2 APIM шлюз устанавливает заголовок хоста в качестве хоста: порт

GET/API/категория HTTP/1.1
Accept-Language: en-US, en; q = 0,8, pt; q = 0,6
токен: 6785ea7b - ####### - ####### - 93f06834660a
Accept-Encoding: gzip, deflate, sdch
X-Forwarded-Server: server01
X-Forwarded-For: 172.XX.XXX.XX
User-Agent: Mozilla/5.0 (X11; Linux x86_64)
Почтовый токен: ece4261e-d610-655c-f06c- f24a99f007c8
Принимать: /
X-Forwarded-Host: SERVER01
Cache-Control: нет-кэш
Ведущий: api.empresa.net:80
Connection: Keep-Alive

Это вызывает проблемы с брандмауэром веб-приложений, как я могу это изменить? Enviroment: RedHat Linux 6.7, APIM 1.9.1

Благодаря

+0

Вы говорите, что API Gateway не должен устанавливать какой-либо заголовок Host? Или вы говорите, что API Gateway не должен устанавливать порт в заголовке хоста? –

+0

Извините за слишком позднее сообщение, я исправил проблему, я изменил политику в WAF, теперь политика не проверяет заголовок хоста только хостом, а host: port и да, я хотел удалить порт заголовка узла , –

ответ

1

Я знаю вашу боль. Мы столкнулись с той же проблемой с нашим балансировщиком нагрузки. Я считаю, что для этого существует WSOP. В то же время, вам нужно будет создать собственный «в» последовательности в соответствии с «/ _System/управление/apimgt/customsequences/в» следующего содержания:

<sequence xmlns="http://ws.apache.org/ns/synapse" name="remove_port_In"> 
    <property name="REQUEST_HOST_HEADER" value="api.empresa.net" scope="axis2"/> 
</sequence> 

Вы можете связать это с вашим API как входящей пользовательской последовательности через приложение издателя до публикации.

1

Согласно protocol specification,

поле Хост заголовка запроса определяет хост Интернет и порт количество запрошенного ресурса , как получено из исходного URI, предоставленного пользователем или ссылочным ресурсом.

Host = "Host" ":" host [ ":" port ] ; Section 3.2.2 

А «хозяин» без какой-либо задней порта информации предполагает порт по умолчанию для запрашиваемой услуги (например, «80» для HTTP URL). Для Например, запрос на сервере происхождения для http://www.w3.org/pub/WWW/ бы правильно включать:

GET /pub/WWW/ HTTP/1.1 
    Host: www.w3.org 
Смежные вопросы