15.5. フィルターの設定


フィルターはリクエストの一部の変更を可能にし、述語を使用してフィルターの実行時を制御できます。フィルターの一般的なユースケースには、ヘッダーの設定や GZIP 圧縮などがあります。

注記

フィルターの機能は、JBoss EAP 6 で使用されたグローバルバルブと同等です。

以下のタイプのフィルターを定義できます。

  • custom-filter
  • error-page
  • expression-filter
  • gzip
  • mod-cluster
  • request-limit
  • response-header
  • rewrite

15.5.1. 管理 CLI と管理コンソールを使用したファイルハンドラーの管理

この手順では、管理 CLI と管理コンソールを使用して Undertow サブシステムでフィルターを管理する方法について説明します。必要に応じて、既存のフィルターを更新したり、新しいフィルターを作成したり、フィルターを削除したりできます。

前提条件

  • 管理 CLI にアクセスできる。
  • 管理コンソールにアクセスできる。
  • サーバー設定を変更する権限がある。

管理コンソールを使用してファイルハンドラーを管理する

管理コンソールを使用してフィルターを設定するには、Configuration Subsystems Web (Undertow) Filters に移動します。

管理 CLI を使用してファイルハンドラーを管理する

次の手順は、管理 CLI を使用してフィルターを設定する方法を示しています。

手順

  • 既存のフィルターの更新

    1. 管理 CLI へ接続します。
    2. フィルターの属性を更新するには、次のコマンドを実行します。

      ----
      /subsystem=undertow/configuration=filter/response-header=myHeader:write-attribute(name=header-value,value="JBoss-EAP")
      ----
      Copy to Clipboard Toggle word wrap
    3. 変更を適用するには、サーバーをリロードします。

      ----
      reload
      ----
      Copy to Clipboard Toggle word wrap
  • 新規のフィルターの作成

    1. 管理 CLI へ接続します。
    2. 新しいフィルターを作成するには、次のコマンドを実行します。

      ----
      /subsystem=undertow/configuration=filter/response-header=new-response-header:add(header-name=new-response-header,header-value="My Value")
      ----
      Copy to Clipboard Toggle word wrap
  • フィルターの削除

    1. 管理 CLI へ接続します。
    2. フィルターを削除するには、次のコマンドを実行します。

      ----
      /subsystem=undertow/configuration=filter/response-header=new-response-header:remove
      ----
      Copy to Clipboard Toggle word wrap
    3. 変更を適用するには、サーバーをリロードします。

      ----
      reload
      ----
      Copy to Clipboard Toggle word wrap

15.5.1.1. buffer-request ハンドラーの設定

クライアントまたはブラウザーからのリクエストは、ヘッダーとボディーの 2 つの部分で構成されます。通常の場合、ヘッダーとボディーの間に遅延がない状態で JBoss EAP に送信されます。しかし、ヘッダーが最初に送信され、その数秒後にボディーが送信されると、完全なリクエストの送信に遅延が発生します。このような場合、JBoss EAP にスレッドが作成され、完全なリクエストの実行を待機していることを示す waiting が表示されます。

リクエストのヘッダーおよびボティーの送信による遅延は、buffer-request ハンドラーを使用して修正できます。buffer-request ハンドラーは、ワーカースレッドに割り当てする前に、非ブロッキング IO スレッドからリクエストの消費を試みます。追加された buffer-request ハンドラーがない場合、スレッドは直接ワーカースレッドに割り当てられます。しかし、buffer-request ハンドラーが追加されると、ワーカースレッドに割り当てする前に、ハンドラーは IO スレッドを使用してブロックせずにバッファー処理できる量のデータを読み取ろうとします。

以下の管理 CLI コマンドを使用して buffer-request ハンドラーを設定できます。

前提条件

  • 管理 CLI にアクセスできる。
  • サーバー設定を変更する権限がある。

手順

  1. バッファー要求 ハンドラーを追加するには、次のコマンドを実行します。

       ----
       /subsystem=undertow/configuration=filter/expression-filter=buf:add(expression="buffer-request(buffers=1)")
       ----
    Copy to Clipboard Toggle word wrap
  2. 次のコマンドを実行して、ハンドラーをサーバーとホストに接続します。

       ----
       /subsystem=undertow/server=default-server/host=default-host/filter-ref=buf:add
       ----
    Copy to Clipboard Toggle word wrap
  3. バッファー要求サイズを計算します。

    `Total_size = num_buffers {MultiplicationSign} buffer_size`
    Copy to Clipboard Toggle word wrap
    Where:
    Copy to Clipboard Toggle word wrap
    • Total_size は、リクエストがワーカースレッドに送信される前にバッファー処理されるデータのサイズになります。
    • num_buffers は、ハンドラーの buffers パラメーターによって設定されるバッファーの数です (この例では 1 に設定されています)。
    • buffer_size は、io サブシステムで設定される各バッファーのサイズです (デフォルトはリクエストあたり 16 KB)。

      警告

      メモリー不足になる可能性があるため、サイズが大きすぎるバッファーリクエストは設定しないでください。

  4. 変更を適用するには、サーバーをリロードします。

       ----
       reload
       ----
    Copy to Clipboard Toggle word wrap

15.5.1.2. SameSite 属性について

SameSite 属性を使用して、同じサイト内での Cookie のアクセシビリティーを定義します。この属性は、ブラウザーがクロスサイトリクエストで Cookie を送信しないため、クロスサイトリクエストフォージェリー攻撃を防ぐのに役立ちます。

undertow サブシステムの SameSiteCookieHandler を使用して、Cookie の SameSite 属性を設定できます。この設定では、アプリケーションコードを変更する必要はありません。

15.5.1.3. SameSiteCookieHandler パラメーター

次の表は、SameSiteCookieHandler のパラメーターの詳細を示しています。

Expand
表15.4 SameSiteCookieHandler パラメーター
パラメーター名存在説明

add-secure-for-none

任意

SameSite 属性モードが None の場合、Cookie に Secure 属性を追加します。デフォルト値は true です。

case-sensitive

任意

cookie-pattern が大文字と小文字を区別するかどうかを示します。デフォルト値は true です。

cookie-pattern

任意

Cookie 名の正規表現パターンを受け入れます。指定されていない場合は、属性 SameSite=<specified-mode> がすべての Cookie に追加されます。

enable-client-checker

任意

クライアントアプリケーションが SameSite=None 属性と互換性がないかどうかを確認します。デフォルト値は true です。

このデフォルト値を使用し、SameSite 属性モードを None 以外の値に設定すると、パラメーターは検証を無視します。

互換性のないクライアントの問題を防ぐため、このパラメーターは SameSite 属性モードを None に設定をスキップするため、影響はありません。互換性のあるクライアントからのリクエストの場合、パラメーターは期待どおりに SameSite 属性モード None を適用します。

mode

必須

SameSite 属性モードを指定します。これは、StrictLax、または None に設定できます。

クロスサイトリクエストフォージェリー攻撃に対するセキュリティーを向上させるために、一部のブラウザーではデフォルトの SameSite 属性モードを Lax に設定します。詳細は、関連情報 セクションを参照してください。

SameSiteCookieHandler は、cookie-pattern に一致する Cookie に、または cookie-pattern が指定されていない場合はすべての Cookie に、属性 SameSite=<specified-mode> を追加します。cookie-pattern は、case-sensitive に設定された値に従って照合されます。

SameSite 属性を設定する前に、次の点を考慮してください。

  • アプリケーションを確認して、Cookie に SameSite 属性が必要かどうか、またそれらの Cookie を保護する必要があるかどうかを確認します。
  • すべての Cookie に対して SameSite 属性モードを None に設定すると、アプリケーションが攻撃を受けやすくなる可能性があります。

15.5.1.4. 式フィルターを使用して SameSiteCookieHandler を設定する

この手順では expression-filter を使用してサーバー上で SameSiteCookieHandler を設定する方法について説明します。

前提条件

  • 管理 CLI にアクセスできる。
  • サーバー設定を変更する権限がある。

手順

  1. SameSiteCookieHandler を使用して新しい expression-filter を作成します。

    ----
    /subsystem=undertow/configuration=filter/expression-filter=addSameSiteLax:add(expression="path-prefix('/mypathprefix') -> samesite-cookie(Lax)")
    ----
    Copy to Clipboard Toggle word wrap
  2. Undertow Web サーバーで 式フィルター を有効にします。

    ----
    /subsystem=undertow/server=default-server/host=default-host/filter-ref=addSameSiteLax:add
    ----
    Copy to Clipboard Toggle word wrap

15.5.1.5. 設定ファイルを使用して SameSiteCookieHandler を設定する

この手順では、undertow-handlers.conf ファイルを追加して、アプリケーションで SameSiteCookieHandler を設定する方法について説明します。

前提条件

  • アプリケーションのソースコードへのアクセス。
  • アプリケーションファイルを変更する権限。

手順

  1. WAR の WEB-INF ディレクトリーに undertow-handlers.conf ファイルを追加します。
  2. undertow-handlers.conf ファイルに、特定の SameSiteCookieHandler パラメーターを指定して次のコマンドを追加します。

    ----
    samesite-cookie(mode=<mode>)
    ----
    Copy to Clipboard Toggle word wrap
    Replace `<mode>` with one of the valid values: `Strict`, `Lax`, or `None`.
    Copy to Clipboard Toggle word wrap
    You can also configure other `SameSiteCookieHandler` parameters, such as `cookie-pattern`, `case-sensitive`, `enable-client-checker`, or `add-secure-for-none`.
    Copy to Clipboard Toggle word wrap
  3. ファイルを保存し、必要に応じてアプリケーションを再デプロイします。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat