164.8.4. HttpServletRequest.getRemoteAddr()を使用した X-Forwarded-For ヘッダーの取得
HTTP リクエストが Apache サーバーによって処理され、mod_proxy で jetty に転送された場合、元のクライアント IP アドレスは X-Forwarded-For ヘッダーにあり、HttpServletRequest.getRemoteAddr()は Apache プロキシーのアドレスを返します。
Jetty には転送されたプロパティーがあり、X-Forwarded-For から値を取得し、HttpServletRequest remoteAddr プロパティーに配置します。 このプロパティーはエンドポイント設定から直接は利用できませんが、socketConnectors プロパティーを使用して簡単に追加できます。
<bean id="jetty" class="org.apache.camel.component.jetty.JettyHttpComponent">
<property name="socketConnectors">
<map>
<entry key="8080">
<bean class="org.eclipse.jetty.server.nio.SelectChannelConnector">
<property name="forwarded" value="true"/>
</bean>
</entry>
</map>
</property>
</bean>
これは、既存の Apache サーバーがドメインの TLS 接続を処理し、それらを内部にアプリケーションサーバーにプロキシーする場合に役立ちます。