インターフェース HttpAuthenticationMechanismHandler


public interface HttpAuthenticationMechanismHandler
HttpAuthenticationMechanismHandler は、1 つ以上の HttpAuthenticationMechanism のセットを参照して、必要に応じて HTTP プロトコルを使用して、何らかの方法で呼び出し元の資格情報を取得するためのメカニズムです。

これは、複数の HttpAuthenticationMechanism 間の調整を目的とした HttpAuthenticationMechanism の特別なバリエーションです。実装では、呼び出し元の資格情報の取得を実際の HttpAuthenticationMechanism に委譲することが期待され、推奨されます。ただし、これは必須ではなく、実装は自由に選択できます。

Jakarta Security の実装では、HttpAuthenticationMechanismHandler のデフォルト実装を提供する必要があります。この実装は ApplicationScoped である必要があり、この実装は以下のように動作する必要があります

  1. このインターフェースで定義されている呼び出しを処理する前に、実装では、修飾子に関係なく、使用可能な型 HttpAuthenticationMechanism の有効な Bean が複数あるかどうかを (暗黙的に) チェックする必要があります。
  2. 使用可能な HttpAuthenticationMechanism 型の有効な Bean が複数ある場合、実装では、この Bean セットにあいまいな依存関係解決ルールを適用する必要があります。たとえば、BeanContainer.resolve(java.util.Set) を使用します。
  3. あいまいな依存関係解決ルールが失敗した場合は、AmbiguousResolutionException をスローする必要があります (または、伝播された BeanContainer.resolve(java.util.Set) によってスローされたもの)。
  4. あいまいな依存関係解決ルールが成功した場合、実装では結果として得られる Bean を記憶する必要があります。
  5. このインターフェースで定義されている呼び出しを処理する場合、実装は、記憶されている HttpAuthenticationMechanism Bean のメソッドを同じ名前と引数で呼び出し、該当する場合はその呼び出しの結果を返す必要があります。

アプリケーション固有の動作が必要な場合を除き、アプリケーションは HttpAuthenticationMechanismHandler を提供する必要はありません。

導入:
4.0
  • メソッドの詳細

    • validateRequest

      AuthenticationStatus validateRequest(HttpServletRequest request, HttpServletResponse response, HttpMessageContext httpMessageContext) throws AuthenticationException
      HTTP リクエストを認証します。

      このメソッドは、リソースに対する HTTP クライアントリクエストに応じて呼び出され、常に Filter または HttpServletに呼び出されます。さらに、このメソッドは HttpServletRequest.authenticate(HttpServletResponse) にレスポンスして呼び出されます

      デフォルトでは、このメソッドは、リクエストが保護されたリソースまたは保護されていないリソースに対するものであるかどうか、同じ HTTP セッション内で呼び出し元が正常に認証されたかどうかに関係なく、すべてのリクエストに対してに呼び出されることに注意してください。

      CDI/Interceptor 仕様インターセプターを使用して、必要に応じてこのメソッドの呼び出しを防ぐことができます。2 つの例については、AutoApplySession および RememberMe を参照してください。

      パラメーター:
      request - クライアントが行ったリクエストが含まれています
      response - クライアントに送信されるレスポンスが含まれています
      httpMessageContext - コンテナーと対話するためのコンテキスト
      戻り値:
      このメソッドによって実行された処理の完了ステータス
      例外:
      AuthenticationException - 処理が失敗したとき
    • secureResponse

      default AuthenticationStatus secureResponse(HttpServletRequest request, HttpServletResponse response, HttpMessageContext httpMessageContext) throws AuthenticationException
      オプションで、レスポンスを保護します。

      このメソッドは、リクエストに対して後処理を行うために呼び出され、 常に Filter または HttpServletに呼び出されます。

      このメソッドは、(サーブレット)リソースが実際に呼び出されたときにのみ呼び出されることに注意してください。つまり、Filter または HttpServlet が SUCCESS を返す前に呼び出された validateRequest への以前の呼び出しが呼び出された場合のみです。

      パラメーター:
      request - クライアントが行ったリクエストが含まれています
      response - クライアントに送信されるレスポンスが含まれています
      httpMessageContext - コンテナーと対話するためのコンテキスト
      戻り値:
      このメソッドによって実行された処理の完了ステータス
      例外:
      AuthenticationException - 処理が失敗したとき
    • cleanSubject

      default void cleanSubject(HttpServletRequest request, HttpServletResponse response, HttpMessageContext httpMessageContext)
      サブジェクトからメカニズム固有のプリンシパルとクレデンシャルを削除し、メカニズムが使用した可能性のあるその他の状態を削除します。

      このメソッドは HttpServletRequest.logout() にレスポンスして呼び出され、認証メカニズムに、以前に確立された認証済み ID に関連付けられた状態を削除するオプションを提供します。例: Cookie 内に状態を保存する認証メカニズムは、ここでその Cookie を削除して送信できます。

      パラメーター:
      request - クライアントが行ったリクエストが含まれています
      response - クライアントに送信されるレスポンスが含まれています
      httpMessageContext - コンテナーと対話するためのコンテキスト