2016-04-22 6 views
0

я собирался по этой ссылке: https://access.redhat.com/documentation/en-US/Red_Hat_JBoss_Fuse/6.0/html/Web_Services_and_Routing_with_Camel_CXF/files/Proxying-Headers.htmlПочему Apache Camel отфильтровывать HTTP заголовки

Он утверждает, что при создании приложений моста с использованием компонентов HTTP или HTTP-основе, часто бывает необходимо удалить или отфильтровать определенные заголовки или классы заголовков на вашем маршруте, чтобы обеспечить правильное поведение вашего приложения. Кроме того, в org.apache.camel.component.netty4.http.NettyHttpHeaderFilterStrategy можно видеть, что много заголовков отфильтровываются следующим образом:

protected void initialize() { 
    getOutFilter().add("content-length"); 
    getOutFilter().add("content-type"); 
    getOutFilter().add("host"); 
    // Add the filter for the Generic Message header 
    // http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.5 
    getOutFilter().add("cache-control"); 
    getOutFilter().add("connection"); 
    getOutFilter().add("date"); 
    getOutFilter().add("pragma"); 
    getOutFilter().add("trailer"); 
    getOutFilter().add("transfer-encoding"); 
    getOutFilter().add("upgrade"); 
    getOutFilter().add("via"); 
    getOutFilter().add("warning"); 

} 

Я знаю, что мы можем изменить это поведение, реализовав свой собственный фильтр стратегия. Но в чем причина блокировки заголовков? Например, если я не блокирую кеш-контроль или заголовок прагмы, к каким побочным эффектам это может привести?

ответ

0

Насколько я помню, фильтр заголовка, на который вы ссылаетесь, является белым, а не черным списком. То есть он пропустит все перечисленные (связанные с http) заголовки, но удалит все другие заголовки, которые могли быть добавлены к вашему обмену, пока он путешествовал по вашим маршрутам. Обычно вы хотите, чтобы эти дополнительные заголовки были удалены, чтобы они не проливали бобы на внутреннюю систему вашей системы.

+0

В приведенной выше ссылке также указано, что когда конечная точка производителя HTTP получает обмен и преобразует его в формат целевого сообщения, он обрабатывает заголовки сообщений In следующим образом: ** Все остальные заголовки преобразуются в заголовки HTTP в целевое сообщение, за исключением следующих заголовков, которые блокируются (на основе соответствия без учета регистра): ** _content длины типа содержимого кэш-контроль соединение дата прагма прицеп передача -кодирование модернизация через warning_ – user3244615

+0

t его не так, HttpHeaderFilterStrategy отфильтрует все общие заголовки HTTP. Я столкнулся с той же проблемой, что и фильтрация заголовка кеша. – bLaXjack

 Смежные вопросы

  • Нет связанных вопросов^_^