public interface HttpMessageContext
HttpMessageContext
には、リクエストごとの状態情報がすべて含まれ、クライアントリクエスト、サーバーレスポンス、認証コールバック用のコンテナーハンドラー、呼び出し元を表すサブジェクトがカプセル化されます。修飾子と型 | メソッドと説明 |
---|---|
void | cleanClientSubject() このコンテキストに関連付けられているサブジェクトをクリーンアップするための便利なメソッド。 |
AuthenticationStatus | doNothing() コンテナーに「何もしない」ように指示します。 |
AuthenticationStatus | forward(StringSE path) サーバー上の別のリソース(Jakarta Servlet、Jakarta Server Pages ファイル、または HTML ファイル)に転送します。 |
AuthenticationParameters | getAuthParameters() SecurityContext#authenticate(AuthParameters)呼び出しで提供されたパラメーターを返します。 |
PrincipalSE | getCallerPrincipal() notifyContainerAboutLogin() の呼び出しによって設定されたプリンシパルを取得します。 |
SubjectSE | getClientSubject() 認証が行われるサブジェクトを返します。 |
SetSE<StringSE> | getGroups() notifyContainerAboutLogin() の呼び出しによって設定されたグループを取得します。 |
CallbackHandlerSE | getHandler() この HttpMessageContext の作成時にランタイムが提供し、このコンテキストが認証の詳細をランタイムに伝達するために使用する低レベルの Jakarta Authentication ハンドラーを返します。 |
MessageInfo | getMessageInfo() 現在のリクエストの低レベルの Jakarta Authentication メッセージ情報インスタンスを返します。 |
HttpServletRequest | getRequest() 現在のリクエストに関連付けられているリクエストオブジェクトを返します。 |
HttpServletResponse | getResponse() 現在のリクエストに関連付けられているレスポンスオブジェクトを返します。 |
boolean | isAuthenticationRequest() 認証メカニズムへの現在の呼び出しが、アプリケーションが SecurityContext.authenticate(HttpServletRequest, HttpServletResponse, AuthenticationParameters) を呼び出した結果であるかどうかを確認します |
boolean | isProtected() 現在リクエストされているリソースが保護されているかどうかを確認します。 |
boolean | isRegisterSession() 現在のリクエスト中に認証セッションを登録するようにランタイムがリクエストされているかどうかを確認します。 |
AuthenticationStatus | notifyContainerAboutLogin(CredentialValidationResult result) ID ストアの CredentialValidationResult 結果をコンテナーに直接渡すことを目的とした便利なメソッド。 |
AuthenticationStatus | notifyContainerAboutLogin(PrincipalSE principal, SetSE<StringSE> groups) SecurityContext.isCallerInRole(String) などで使用するためにアプリケーションで使用できるようにするために、指定された呼び出し元のプリンシパルとグループを登録するようにコンテナーに要求します。 |
AuthenticationStatus | notifyContainerAboutLogin(StringSE callername, SetSE<StringSE> groups) SecurityContext.isCallerInRole(String) などで使用するためにアプリケーションで使用できるようにするために、指定された呼び出し元の名前とグループを登録するようにコンテナーに要求します。 |
AuthenticationStatus | redirect(StringSE location) レスポンスステータスを SC_FOUND302 に設定します (検出) |
AuthenticationStatus | responseNotFound() レスポンスステータスを 404(見つかりません)に設定します。 |
AuthenticationStatus | responseUnauthorized() レスポンスステータスを 401(未承認)に設定します。 |
void | setRegisterSession(StringSE callerName, SetSE<StringSE> groups) 認証セッションを登録するようにランタイムに要求します。 |
void | setRequest(HttpServletRequest request) リクエストオブジェクトを設定します。 |
void | setResponse(HttpServletResponse response) レスポンスオブジェクトを設定します。 |
HttpMessageContext | withRequest(HttpServletRequest request) リクエストオブジェクトを設定します。 |
boolean isProtected()
web.xml
。boolean isAuthenticationRequest()
SecurityContext.authenticate(HttpServletRequest, HttpServletResponse, AuthenticationParameters)
を呼び出した結果であるかどうかを確認します SecurityContext#authenticate が呼び出されなかった場合、認証メカニズムは、リクエストの開始時にコンテナーによって呼び出された可能性があります。
boolean isRegisterSession()
void setRegisterSession(StringSE callerName, SetSE<StringSE> groups)
HttpAuthenticationMechanism
は、各リクエストの開始時にランタイムで手動で再認証する必要があります。callerName
- 認証を記憶する必要がある発信者名 groups
- 認証を記憶する必要があるグループ。void cleanClientSubject()
このサブジェクトのクリーニングは、ServerAuthModule#cleanSubject メソッドの Jakarta Authentication のサーブレットコンテナープロファイルと、この仕様で定義されている HttpAuthenticationMechanism.cleanSubject(HttpServletRequest, HttpServletResponse, HttpMessageContext)
メソッドで定義されているとおりに実行されます。
AuthenticationParameters getAuthParameters()
CallbackHandlerSE getHandler()
HttpMessageContext
の作成時にランタイムが提供し、このコンテキストが認証の詳細をランタイムに伝達するために使用する低レベルの Jakarta Authentication ハンドラーを返します。メモ : これは低レベルのオブジェクトであり、ほとんどの高レベルのコードで直接使用する必要はありません。
MessageInfo getMessageInfo()
メモ : これは低レベルのオブジェクトであり、ほとんどの高レベルのコードで直接使用する必要はありません。
SubjectSE getClientSubject()
メモ : これは低レベルのオブジェクトであり、ほとんどの高レベルのコードで直接使用する必要はありません。
HttpServletRequest getRequest()
void setRequest(HttpServletRequest request)
request
- 設定するリクエストオブジェクト HttpMessageContext withRequest(HttpServletRequest request)
request
- 設定されるリクエストオブジェクト。HttpServletResponse getResponse()
void setResponse(HttpServletResponse response)
response
- 設定するレスポンスオブジェクト。AuthenticationStatus redirect(StringSE location)
便宜上、このメソッドは SEND_CONTINUE を返すため、このメソッドは HttpAuthenticationMechanism
からの 1 つの流れるような return ステートメントで使用できます。
location
- リダイレクトする場所 AuthenticationStatus.SEND_CONTINUE
HttpServletResponse.sendRedirect(String)
AuthenticationStatus forward(StringSE path)
便宜上、このメソッドは SEND_CONTINUE を返すため、このメソッドは HttpAuthenticationMechanism
からの 1 つの流れるような return ステートメントで使用できます。
path
- リソースへのパス名を指定する文字列。AuthenticationStatus.SEND_CONTINUE
RequestDispatcher.forward(jakarta.servlet.ServletRequest, jakarta.servlet.ServletResponse)
AuthenticationStatus responseUnauthorized()
便宜上、このメソッドは SEND_FAILURE を返すため、このメソッドは HttpAuthenticationMechanism
からの 1 つの流れるような return ステートメントで使用できます。
AuthenticationStatus responseNotFound()
便宜上、このメソッドは SEND_FAILURE を返すため、このメソッドは HttpAuthenticationMechanism
からの 1 つの流れるような return ステートメントで使用できます。
AuthenticationStatus notifyContainerAboutLogin(StringSE callername, SetSE<StringSE> groups)
SecurityContext.isCallerInRole(String)
などで使用するためにアプリケーションで使用できるようにするために、指定された呼び出し元の名前とグループを登録するようにコンテナーに要求します。この呼び出しが返された後、認証された ID はすぐにはアクティブにならないことに注意してください。これは、この呼び出しが行われる認証メカニズムが制御をコンテナーに戻した後(実行時)にのみ発生します(エラーが発生しない場合)。
便宜上、このメソッドは SUCCESS を返すため、このメソッドは HttpAuthenticationMechanism
からの 1 つの流れるような return ステートメントで使用できます。
callername
- 発信者プリンシパルとなる発信者名 groups
- 発信者プリンシパルに関連付けられているグループ AuthenticationStatus.SUCCESS
AuthenticationStatus notifyContainerAboutLogin(PrincipalSE principal, SetSE<StringSE> groups)
SecurityContext.isCallerInRole(String)
などで使用するためにアプリケーションで使用できるようにするために、指定された呼び出し元のプリンシパルとグループを登録するようにコンテナーに要求します。この呼び出しにより、コンテナーは、呼び出し元の ID を表す 2 つの呼び出し元プリンシパルを確立する可能性があることに注意してください。ここでは、プリンシパルパラメーターとして提供されるプリンシパルと、コンテナーの呼び出し元 ID の表現として使用される 2 番目のプリンシパルです。2 番目のプリンシパルは、コンテナーが呼び出し元を表すために異なるプリンシパル型を使用する場合にのみ追加されます。型が同じである場合、1 つのプリンシパルのみが追加されます。
2 番目のプリンシパルが追加された場合、Principal.getName()
SE によって返される値は両方のプリンシパルで同じになります。
2 つのプリンシパルが追加されると、コンテナーの呼び出し元プリンシパルが SecurityContext.getCallerPrincipal()
から返され、ここでパラメーターとして指定されたプリンシパルは SecurityContext.getPrincipalsByType(Class)
を使用して取得できます。1 つだけ追加すると、SecurityContext.getCallerPrincipal()
によって返されます。
この呼び出しが返された後、認証された ID はすぐにはアクティブにならないことに注意してください。これは、この呼び出しが行われる認証メカニズムが制御をコンテナーに戻した後(実行時)にのみ発生します(エラーが発生しない場合)。
便宜上、このメソッドは SUCCESS を返すため、このメソッドは HttpAuthenticationMechanism
からの 1 つの流れるような return ステートメントで使用できます。
principal
- 発信者プリンシパルになるプリンシパル groups
- 発信者プリンシパルに関連付けられているグループ AuthenticationStatus.SUCCESS
AuthenticationStatus notifyContainerAboutLogin(CredentialValidationResult result)
CredentialValidationResult
結果をコンテナーに直接渡すことを目的とした便利なメソッド。 指定された CredentialValidationResult.getStatus()
の結果が CredentialValidationResult.Status.VALID
に等しい場合、CallerPrincipal
とグループは CredentialValidationResult
から取得され、notifyContainerAboutLogin(Principal, Set)
に渡されます。
指定された CredentialValidationResult.getStatus()
の結果が CredentialValidationResult.Status.VALID
と等しくない場合、失敗の結果が返されます。
result
- ステータスがインスペクションされ、プリンシパルとグループが取得される CredentialValidationResult。CredentialValidationResult.getStatus()
が CredentialValidationResult.Status.VALID
と等しい場合は AuthenticationStatus.SUCCESS
、それ以外の場合は AuthenticationStatus.SEND_FAILURE
AuthenticationStatus doNothing()
何もしない場合、Jakarta Security 認証メカニズムは、戻り値を介してこれを明示的に示す必要があります。
便宜上、このメソッドは NOT_DONE を返すため、このメソッドは HttpAuthenticationMechanism
からの 1 つの流れるような return ステートメントで使用できます。
PrincipalSE getCallerPrincipal()
Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.