インターフェース HttpAuthenticationMechanism

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

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

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

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

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

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

    • メソッドの詳細

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