列挙型クラス AuthenticationStatus
- 実装されたすべてのインターフェース:
SerializableSE
、ComparableSE<AuthenticationStatus>
、ConstableSE
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>>
列挙定数のサマリー
列挙型定数列挙定数説明認証メカニズムが呼び出されましたが、認証しないことにしました。認証メカニズムが呼び出され、呼び出し元とのマルチステップ認証ダイアログが開始されました(たとえば、呼び出し元がログインページにリダイレクトされました)。認証メカニズムが呼び出されましたが、呼び出し元が正常に認証されなかったため、呼び出し元のプリンシパルは使用できません。認証メカニズムが呼び出され、呼び出し元が正常に認証されました。メソッドのサマリー
修飾子と型メソッド説明static AuthenticationStatus
指定された名前でこのクラスの列挙型定数を返します。static AuthenticationStatus[]
values()
この列挙型クラスの定数を含む配列を、宣言されている順序で返します。クラス java.lang.EnumSE から継承されたメソッド
clone, compareToSE, describeConstable, equalsSE, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOfSE
列挙型定数の詳細
NOT_DONE
認証メカニズムが呼び出されましたが、認証しないことにしました。このステータスは通常、プリエンプティブセキュリティで返されます。認証メカニズムが呼び出されますが、認証はオプションであり、たとえば特定のリクエストヘッダーが存在する場合にのみ実行されます。SEND_CONTINUE
認証メカニズムが呼び出され、呼び出し元とのマルチステップ認証ダイアログが開始されました(たとえば、呼び出し元がログインページにリダイレクトされました)。簡単に言うと、認証は「進行中」です。このステータスを受け取ったときに、呼び出し元のアプリケーションコード(存在する場合)はレスポンスに書き込まないでください。SUCCESS
認証メカニズムが呼び出され、呼び出し元が正常に認証されました。Jakarta EE サーバーがこの結果を処理した後、呼び出し元のプリンシパルが使用可能になります。SEND_FAILURE
認証メカニズムが呼び出されましたが、呼び出し元が正常に認証されなかったため、呼び出し元のプリンシパルは使用できません。このステータスは、論理的な問題(資格情報が一致しない、呼び出し元 ID が見つからないなど)を示すために使用する必要があることに注意してください。システムレベルの問題(データベース接続のタイムアウトなど)には、例外を使用する必要があります。
メソッドの詳細
values
この列挙型クラスの定数を含む配列を、宣言されている順序で返します。- 戻り値:
- この列挙型クラスの定数を宣言された順序で含む配列
valueOf
指定された名前でこのクラスの列挙型定数を返します。文字列は、このクラスで列挙型定数を宣言するために使用される識別子と正確に一致する必要があります。(余分な空白文字は許可されません。)- パラメーター:
name
- 返される列挙定数の名前。- 戻り値:
- 指定された名前の列挙定数
- 例外:
IllegalArgumentExceptionSE
- この列挙型クラスに指定された名前の定数がない場合NullPointerExceptionSE
- 引数が null の場合