2016-04-22 12 views
0

HTTPヘッダをApacheのラクダを除外しませんアプリケーションの期待どおりの動作を保証するために、ルート内の見出しのクラスを使用することができます。また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に関連する)すべてのヘッダーを通過させますが、ルートを通って移動している間は、エクスチェンジに追加された可能性のある他のヘッダーをすべてドロップします。通常は、これらの追加ヘッダーを削除して、システム内部についてBeanをこぼさないようにします。

+0

上記のリンクでは、HTTPプロデューサエンドポイントが交換を受け取り、それをターゲットメッセージフォーマットに変換すると、Inメッセージヘッダーを次のように処理することも記載しています。**他のすべてのヘッダーは、HTTPヘッダーに変換されます。 (大文字と小文字を区別しないマッチに基づいて)ブロックされている以下のヘッダを除いてターゲットメッセージ、** _content長 コンテンツタイプ キャッシュ制御 接続 日付プラグマ トレーラー転送-encoding アップグレード 経由で 警告_ – user3244615

+0

t HttpHeaderFilterStrategyはすべての一般的なHTTPヘッダーを除外します。キャッシュコントロールヘッダーをフィルタリングするのと同じ問題に直面しています。 – bLaXjack

関連する問題