いくつかのカスタム ヘッダーを設定し、リバース プロキシとして機能するキャメル ルートがあります。
from("servlet:///listen/path?matchOnUriPrefix=true")
.setHeader(Exchange.HTTP_RESPONSE_CODE, simple("200"))
.setHeader("MY_HEADER", simple("MY_VALUE"))
.to("some endpont");
アプリ サーバーへのリクエストは Web エージェントを介して渡され、Web エージェントはいくつかのヘッダーをリクエストに設定します。これらのヘッダーには、機密情報が含まれています。ただし、キャメル ルートはすべてのリクエスト ヘッダーをレスポンス ヘッダーとしてレスポンスにコピーするように見えます。その結果、Web エージェンによって設定された機密情報がブラウザ エンドで利用可能になります。
Browser Web agent
+--+ Camel Route
| | +----------+ +------------+
| +-------> | Sets some|-------------> | |
| | | headers | | |
| | <-------| to request <-------------+ |
| | | | | |
| | +----------+ +------------+
| |
+--+
Response headers
having web-agent
headers
ただし、キャメル ルートをスキップすると、応答に Web エージェント ヘッダーがありませんでした。そのため、キャメル/サーブレット コンポーネントがリクエスト ヘッダーをレスポンスにコピーしていると思われます。roue 内のコードからの応答に要求ヘッダーをコピーしていないことに注意してください。これに光を当ててください。
アップデート
camelサーブレットのドキュメントに従って
Camel は、HTTP コンポーネントと同じメッセージ ヘッダーを適用します。Camel はすべての request.parameter と request.headers にも入力します。たとえば、クライアント リクエストの URL が http://myserver/myserver?orderid=123の場合、交換には、値が 123 の orderid という名前のヘッダーが含まれます。
これは、サーブレット コンポーネントがすべての要求ヘッダーを応答にコピーすることを意味しますか? もしそうなら、それを無効にする方法は?