インターフェース HttpAuthenticationMechanism

すべての既知の実装クラス:
HttpAuthenticationMechanismWrapper

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

これは、Jakarta RESTful Web Services エンドポイントや Jakarta Faces ビューのように Jakarta Servlets 上に構築される可能性のあるエンドポイントを含む、Jakarta Servlet エンドポイントを保護するために使用されます。特に、リモート Jakarta Enterprise Beans または(Jakarta Messaging)メッセージ駆動型 Bean などのエンドポイントに は使用されません。

HttpAuthenticationMechanism は、本質的には、サーブレットコンテナープロファイルに準拠した、ServerAuthModule の Jakarta Servlet 固有の CDI 対応バージョンです。詳細については、Jakarta Authentication 仕様を参照してください。

このクラスの実装は、HttpMessageContext.notifyContainerAboutLogin(java.security.Principal, java.util.Set) メソッドを使用して、認証が成功したことを Jakarta Servlet コンテナーに通知できます。

実装は、IdentityStore にオプションのグループを持つ呼び出し側の名前の実際の資格情報の検証および / または検索を委譲することが期待され、奨励されています。ただし、これは必須ではなく、実装は認証の検証チェックを完全に自律的に行うか、プロセスの特定の側面のみをストアに委譲することができます(たとえば、認証されたユーザーが属するグループの取得にのみストアを使用します)。

デフォルトでは、アクティブにできる HttpAuthenticationMechanism は 1 つだけです。これは、HttpAuthenticationMechanismHandler のデフォルト実装によって強制されます。アプリケーションが複数の HttpAuthenticationMechanism を使用する場合 (UI セクションのフォームメカニズムと REST エンドポイントの Basic HTTP など)、カスタム HttpAuthenticationMechanismHandler を提供する必要があります。この仕様の将来のバージョンでは、この領域でデフォルトの動作が提供される場合があります。

  • メソッドの詳細

    • 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 - コンテナーと対話するためのコンテキスト