Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 互換編


5.10.4 Webコンテナにゲートウェイ情報を通知する場合の注意事項

ゲートウェイ指定機能を使用する上での注意事項を次に示します。

リダイレクト先URLのホスト名,およびポート番号の指定について

通常,ブラウザはHostヘッダを付けてリクエストを送信するため,リダイレクト先URLのホスト名やポート番号を指定する必要はありません。

なお,リクエストにHostヘッダがあるかどうかは,javax.servlet.http.HttpServletRequestクラスのgetHeaderメソッドに,引数「Host」を指定して呼び出すことで確認できます。

サーブレットAPIの動作について

ゲートウェイ指定機能の利用によって,一部のサーブレットAPIの動作が変わります。WebアプリケーションでAPIを利用するときには注意が必要です。

ゲートウェイ指定機能を使用する場合,一部のサーブレットAPIの動作が変わります。ゲートウェイ指定機能使用時のサーブレットAPIの注意事項を,使用するメソッドごとに示します。

  • javax.servlet.http.HttpServletResponseクラスのsendRedirectメソッド

    引数に相対URLを指定し,Hostヘッダのないリクエストの場合,リダイレクト先URLのホスト名とポート番号は,ゲートウェイ指定機能で指定した値となります。引数に相対URLを指定し,ゲートウェイ指定機能でスキームをhttpsと見なすように設定した場合,リダイレクト先URLのスキームは常に「https」となります。

  • javax.servlet.ServletRequestインタフェースのgetRequestURLメソッド

    ゲートウェイ指定機能でスキームをhttpsと見なすように設定した場合,戻り値は常に「https://」で始まるURLとなります。

  • javax.servlet.ServletRequestインタフェースのgetServerNameメソッド

    ゲートウェイ指定機能でリダイレクト先URLのホスト名を指定し,リクエストにHostヘッダがない場合,戻り値は指定した値となります。

  • javax.servlet.ServletRequestインタフェースのgetServerPortメソッド

    ゲートウェイ指定機能でリダイレクト先URLのポート番号を指定し,リクエストにHostヘッダがない場合,戻り値は指定した値となります。ゲートウェイ指定機能でリダイレクト先URLのホスト名を指定し,ポート番号を省略した場合,戻り値はリクエストのスキームがhttpであれば「80」,httpsであれば「443」となります。

  • javax.servlet.ServletRequestインタフェースのgetSchemeメソッド

    ゲートウェイ指定機能でスキームをhttpsと見なすように設定した場合,戻り値は常に「https」となります。

  • javax.servlet.ServletRequestインタフェースのisSecureメソッド

    ゲートウェイ指定機能でスキームをhttpsと見なすように設定した場合,戻り値は常に「true」となります。

  • javax.servlet.ServletRequestインタフェースのgetAttributeメソッド

    ゲートウェイ指定機能でスキームをhttpsと見なすように設定した場合でも,次の属性は取得できません。

    ・javax.servlet.request.cipher_suite(WebサーバにMicrosoft IISを使用している場合は,ゲートウェイ指定機能の使用に関係なく取得できません)

    ・javax.servlet.request.key_size

    ・javax.servlet.request.X509Certificate

web.xmlの<transport-guarantee>タグについて

ゲートウェイ指定機能でスキームをHTTPSと見なすように設定した場合,WebサーバへのリクエストがHTTPであってもHTTPSであると見なされます。このため,web.xmlの<transport-guarantee>タグでINTEGRALやCONFIDENTIALを指定してもHTTPSのURLへリダイレクトされないので注意してください。

CookieのSecure属性について

ゲートウェイ指定機能でスキームをHTTPSと見なすように設定している場合に,Webコンテナが生成したセッションIDを,Cookieによってクライアントに返すとき,そのCookieにはSecure属性が付与されます。

ゲートウェイを通さないWebサーバへの通信

リダイレクタでゲートウェイ指定機能を有効にした場合,そのWebサーバにSSLアクセラレータや負荷分散機などのゲートウェイを通さないとき,直接HTTP通信はできません。