インターフェース RememberMeServices

すべての既知の実装クラス:
AbstractRememberMeServicesNullRememberMeServicesPersistentTokenBasedRememberMeServicesTokenBasedRememberMeServices

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 - 正常に認証されたプリンシパルを表す