6.1.10. サービス提供可否チェックハンドラ

本ハンドラでは、 リクエストに対するサービス提供可否チェック を行う。

サービス提供可否チェックは、ライブラリの サービス提供可否チェック を使用して行う。 そのため、本ハンドラを使用するには、 ServiceAvailability を実装したクラスを本ハンドラに設定する必要がある。

本ハンドラでは、以下の処理を行う。

  • サービス提供可否チェック

処理の流れは以下のとおり。

../../../../_images/ServiceAvailabilityCheckHandler_flow.png

6.1.10.2. モジュール一覧

<dependency>
  <groupId>com.nablarch.framework</groupId>
  <artifactId>nablarch-common-auth</artifactId>
</dependency>

6.1.10.3. 制約

スレッドコンテキスト変数管理ハンドラ より後ろに配置すること
本ハンドラではスレッドコンテキスト上に設定されたリクエストIDをもとにサービス提供可否チェックを行うため、 スレッドコンテキスト変数管理ハンドラ より後ろに本ハンドラを配置する必要がある。
内部フォーワードハンドラ より後ろに配置すること
内部フォーワードが行われた際に、フォーワード先のリクエストIDをもとに サービス提供可否チェックを行いたい場合は、 内部フォーワードハンドラ より後ろに本ハンドラを配置する必要がある。

6.1.10.4. リクエストに対するサービス提供可否チェック

ThreadContext からリクエストIDを取得し、サービス提供可否をチェックする。 チェックの詳細は、 サービス提供可否チェック を参照。

OK(サービス提供可)の場合
後続ハンドラを呼び出す。
NG(サービス提供不可)の場合
ServiceUnavailable (503) を送出する。

ThreadContext から取得するリクエストIDをフォーワード先のリクエストIDに変更したい場合は、 usesInternalRequestId にtrueを指定する。デフォルトはfalseである。