列挙型クラス AuthenticationStatus

java.lang.ObjectSE
java.lang.EnumSE<AuthenticationStatus>
jakarta.security.enterprise.AuthenticationStatus
実装されたすべてのインターフェース:
SerializableSEComparableSE<AuthenticationStatus>ConstableSE

public enum AuthenticationStatus extends EnumSE<AuthenticationStatus>
AuthenticationStatus は、主に HttpAuthenticationMechanism によって戻り値として使用され、認証プロセスの結果(ステータス)を示します。

HttpAuthenticationMechanism.validateRequest(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse, jakarta.security.enterprise.authentication.mechanism.http.HttpMessageContext) からの結果の場合、AuthenticationStatus は、次のルールに従って、Jakarta EE サーバーによって対応する Jakarta Authentication AuthStatus に変換される必要があります。

  • AuthenticationStatus.NOT_DONE から AuthStatus.SUCCESS
  • AuthenticationStatus.SEND_CONTINUE から AuthStatus.SEND_CONTINUE
  • AuthenticationStatus.SUCCESS から AuthStatus.SUCCESS
  • AuthenticationStatus.SEND_FAILURE から AuthStatus.SEND_FAILURE

上で概説した変換の後、変換された結果は、Jakarta Authentication 仕様のサーブレットコンテナープロファイルで指定されているように、Jakarta EE サーバーによって処理される必要があります。

実装ノート : Jakarta Authentication Servlet Container Profile は AuthStatus.SUCCESS の結果を処理する方法に関する信頼できる情報源であり、この仕様ではいかなる種類の制約も課されていませんが、実際には Jakarta EE サーバーは主に結果が AuthStatus.SUCCESS であるか AuthStatus.SUCCESS ではないかを確認することが期待されます。簡単に言うと、結果が AuthStatus.SUCCESS の場合、認証された ID(存在する場合)を現在の HTTP リクエストに設定(確立)する必要があります。そうでない場合は設定しません。

AuthenticationStatus 型でもある SecurityContext.authenticate(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse, jakarta.security.enterprise.authentication.mechanism.http.AuthenticationParameters) の戻り値は、上記の HttpAuthenticationMechanism#validateRequest メソッドの結果に強く関連していますが、Jakarta EE サーバーは、対応する HttpServletRequest.authenticate(jakarta.servlet.http.HttpServletResponse) 呼び出しの結果から次のように変換する必要があります。

  • true から AuthenticationStatus.SUCCESS
  • false から [last status] (下記を参照)
  • ServletException または IOException から AuthenticationStatus.SEND_FAILURE

HttpAuthenticationMechanism が使用された場合、[last status] は HttpAuthenticationMechanism#validateRequest によって返される値でなければなりません。

Jakarta Authentication ServerAuthModule(SAM)が使用され、HttpAuthenticationMechanism が使用されなかった場合、Jakarta EE サーバーは、[last status] を次のように変換された ServerAuthModule#validateRequest によって返される値に設定することをお勧めします。

  • AuthStatus.SEND_CONTINUE から AuthenticationStatus.SEND_CONTINUE
  • AuthStatus.SUCCESS から AuthenticationStatus.SUCCESS
  • AuthStatus.SEND_FAILURE から AuthenticationStatus.SEND_FAILURE
  • (他のすべての結果)AuthenticationStatus.NOT_DONE へ

Jakarta EE Server 独自の ID ストアと同等のものが使用され、HttpAuthenticationMechanism が使用されなかった場合、Jakarta EE サーバーは、[last status] を AuthenticationStatus の各列挙定数の記述に論理的に対応する値に設定することをお勧めしますが必須ではありません。この結果は、移植可能であるとしてアプリケーションコードに依存してはなりません。

SecurityContext#authenticate を呼び出すアプリケーションコードは、AuthenticationStatus のすべての可能な値に作用することが期待されています。

  • ネストされたクラスのサマリー

    クラス java.lang.EnumSE から継承されたネストクラス / インターフェース

    Enum.EnumDescSE<ESE extends EnumSE<ESE>>
  • 列挙定数のサマリー

    列挙型定数
    列挙定数
    説明
    認証メカニズムが呼び出されましたが、認証しないことにしました。
    認証メカニズムが呼び出され、呼び出し元とのマルチステップ認証ダイアログが開始されました(たとえば、呼び出し元がログインページにリダイレクトされました)。
    認証メカニズムが呼び出されましたが、呼び出し元が正常に認証されなかったため、呼び出し元のプリンシパルは使用できません。
    認証メカニズムが呼び出され、呼び出し元が正常に認証されました。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    指定された名前でこのクラスの列挙型定数を返します。
    この列挙型クラスの定数を含む配列を、宣言されている順序で返します。

    クラス java.lang.EnumSE から継承されたメソッド

    clone, compareToSE, describeConstable, equalsSE, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOfSE

    クラス java.lang.ObjectSE から継承されたメソッド

    getClass, notify, notifyAll, wait, waitSE, waitSE
  • 列挙型定数の詳細

    • NOT_DONE

      public static final AuthenticationStatus NOT_DONE
      認証メカニズムが呼び出されましたが、認証しないことにしました。このステータスは通常、プリエンプティブセキュリティで返されます。認証メカニズムが呼び出されますが、認証はオプションであり、たとえば特定のリクエストヘッダーが存在する場合にのみ実行されます。
    • SEND_CONTINUE

      public static final AuthenticationStatus SEND_CONTINUE
      認証メカニズムが呼び出され、呼び出し元とのマルチステップ認証ダイアログが開始されました(たとえば、呼び出し元がログインページにリダイレクトされました)。簡単に言うと、認証は「進行中」です。このステータスを受け取ったときに、呼び出し元のアプリケーションコード(存在する場合)はレスポンスに書き込まないでください。
    • SUCCESS

      public static final AuthenticationStatus SUCCESS
      認証メカニズムが呼び出され、呼び出し元が正常に認証されました。Jakarta EE サーバーがこの結果を処理した後、呼び出し元のプリンシパルが使用可能になります。
    • SEND_FAILURE

      public static final AuthenticationStatus SEND_FAILURE
      認証メカニズムが呼び出されましたが、呼び出し元が正常に認証されなかったため、呼び出し元のプリンシパルは使用できません。

      このステータスは、論理的な問題(資格情報が一致しない、呼び出し元 ID が見つからないなど)を示すために使用する必要があることに注意してください。システムレベルの問題(データベース接続のタイムアウトなど)には、例外を使用する必要があります。

  • メソッドの詳細

    • values

      public static AuthenticationStatus[] values()
      この列挙型クラスの定数を含む配列を、宣言されている順序で返します。
      戻り値:
      この列挙型クラスの定数を宣言された順序で含む配列
    • valueOf

      public static AuthenticationStatus valueOf(StringSE name)
      指定された名前でこのクラスの列挙型定数を返します。文字列は、このクラスで列挙型定数を宣言するために使用される識別子と正確に一致する必要があります。(余分な空白文字は許可されません。)
      パラメーター:
      name - 返される列挙定数の名前。
      戻り値:
      指定された名前の列挙定数
      例外:
      IllegalArgumentExceptionSE - この列挙型クラスに指定された名前の定数がない場合
      NullPointerExceptionSE - 引数が null の場合