インターフェース RememberMeServices
- すべての既知の実装クラス:
AbstractRememberMeServices
、NullRememberMeServices
、PersistentTokenBasedRememberMeServices
、TokenBasedRememberMeServices
public interface RememberMeServices
remember-me サービスを提供できるクラスによって実装します。
Spring Security フィルター(つまり、AbstractAuthenticationProcessingFilter
および RememberMeAuthenticationFilter
は、このインターフェースの実装によって提供されるメソッドを呼び出します。
実装は、希望する任意の型の記憶機能を実装できます。永続的なストアを必要としない単純な実装と同様に、ローリング Cookie(https://fishbowl.pastiche.org/2004/01/19/persistent_login_cookie_best_practice による)を使用できます。実装は、remember-me cookie の有効期間も決定します。このインターフェースは、これらのリメンバーミーモデルに対応するように設計されています。
このインターフェースは、remember-me サービスが「すべての remember-me トークンをキャンセルする」型の機能を提供する方法を定義しません。これは、実装固有であり、Spring Security へのフックを必要としないためです。
メソッドのサマリー
修飾子と型メソッド説明autoLogin
(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) このメソッドは、SecurityContextHolder
にAuthentication
オブジェクトが含まれておらず、Spring Security が実装に記憶機能を使用してリクエストを認証する機会を提供したい場合に呼び出されます。void
loginFail
(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) 対話型認証の試行が行われたが、ユーザーによって提供された資格情報が欠落しているか、それ以外の場合は無効であるときに呼び出されます。void
loginSuccess
(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, Authentication successfulAuthentication) 対話型認証の試行が成功するたびに呼び出されます。
メソッドの詳細
autoLogin
Authentication autoLogin(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) このメソッドは、SecurityContextHolder
にAuthentication
オブジェクトが含まれておらず、Spring Security が実装に記憶機能を使用してリクエストを認証する機会を提供したい場合に呼び出されます。Spring Security は、ブラウザーが記憶機能サービスをリクエストしたか、有効な Cookie を提示したかを判断しようとはしません。そのような決定は実装に任されています。なんらかの理由でブラウザーが無許可の Cookie を提示した場合は、HttpServletResponse
オブジェクトを使用してそれを確認なしで無視し、無効にする必要があります。返された
Authentication
は、Web アプリケーションによって定義されたAuthenticationManager
またはAuthenticationProvider
に受け入れられる必要があります。対応する認証プロバイダーがあるため、ほとんどの場合、RememberMeAuthenticationToken
を使用することをお勧めします。- パラメーター:
request
- 内で remember-me トークンを探すresponse
- remember-me トークンを変更、キャンセル、変更するには- 戻り値:
- 有効な認証オブジェクト、またはリクエストが認証されない場合は
null
loginFail
void loginFail(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) 対話型認証の試行が行われたが、ユーザーによって提供された資格情報が欠落しているか、それ以外の場合は無効であるときに呼び出されます。実装では、HttpServletRequest
に示されているすべての remember-me トークンを無効にする必要があります。- パラメーター:
request
- 無効な認証リクエストが含まれていたresponse
- remember-me トークンを変更、キャンセル、変更するには
loginSuccess
void loginSuccess(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, Authentication successfulAuthentication) 対話型認証の試行が成功するたびに呼び出されます。実装では、HttpServletResponse
に remember-me トークンを自動的に設定する場合がありますが、これはお勧めできません。代わりに、実装は通常、ブラウザーが HTTP POST パラメーターの存在など、記憶すべき認証の明示的なリクエストを提示したことを示すリクエストパラメーターを探す必要があります。- パラメーター:
request
- 有効な認証リクエストを含むresponse
- remember-me トークンを変更、キャンセル、変更するにはsuccessfulAuthentication
- 正常に認証されたプリンシパルを表す