列挙型 AuthenticationStatus
- java.lang.ObjectSE
-
- java.lang.EnumSE<AuthenticationStatus>
-
- jakarta.security.enterprise.AuthenticationStatus
- 実装されたすべてのインターフェース:
SerializableSE
,ComparableSE<AuthenticationStatus>
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 AuthenticationAuthStatus
に変換される必要があります。- 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 のすべての可能な値に作用することが期待されています。
列挙定数のサマリー
列挙型定数 列挙定数 説明 NOT_DONE
認証メカニズムが呼び出されましたが、認証しないことにしました。SEND_CONTINUE
認証メカニズムが呼び出され、発信者とのマルチステップ認証ダイアログが開始されました(たとえば、発信者がログインページにリダイレクトされました)。SEND_FAILURE
認証メカニズムが呼び出されましたが、呼び出し元が正常に認証されなかったため、呼び出し元のプリンシパルは使用できません。SUCCESS
認証メカニズムが呼び出され、呼び出し元が正常に認証されました。
メソッドのサマリー
すべてのメソッド 静的メソッド 具象メソッド 修飾子と型 メソッド 説明 static AuthenticationStatus
valueOf(StringSE name)
指定された名前を持つこの型の列挙定数を返します。static AuthenticationStatus[]
values()
この列挙型の定数を含む配列を、宣言されている順序で返します。
列挙定数の詳細
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()
この列挙型の定数を含む配列を、宣言されている順序で返します。このメソッドは、次のように定数を反復するために使用できます。for (AuthenticationStatus c : AuthenticationStatus.values()) System.out.println(c);
- 戻り値:
- この列挙型の定数を宣言されている順序で含む配列
valueOf
public static AuthenticationStatus valueOf(StringSE name)
指定された名前を持つこの型の列挙定数を返します。文字列は、この型の列挙定数を宣言するために使用される識別子と正確に一致する必要があります。(余分な空白文字は許可されません。)- パラメーター:
name
- 返される列挙定数の名前。- 戻り値:
- 指定された名前の列挙定数
- 例外:
IllegalArgumentExceptionSE
- この列挙型に指定された名前の定数がない場合NullPointerExceptionSE
- 引数が null の場合