クラス RememberMeAuthenticationFilter

java.lang.ObjectSE
org.springframework.web.filter.GenericFilterBean
org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter
実装されたすべてのインターフェース:
jakarta.servlet.Filterorg.springframework.beans.factory.Awareorg.springframework.beans.factory.BeanNameAwareorg.springframework.beans.factory.DisposableBeanorg.springframework.beans.factory.InitializingBeanorg.springframework.context.ApplicationEventPublisherAwareorg.springframework.context.EnvironmentAwareorg.springframework.core.env.EnvironmentCapableorg.springframework.web.context.ServletContextAware

public class RememberMeAuthenticationFilter extends org.springframework.web.filter.GenericFilterBean implements org.springframework.context.ApplicationEventPublisherAware
SecurityContext に Authentication オブジェクトがないかどうかを検出し、RememberMeServices 実装がリクエストした場合は、コンテキストに記憶記憶認証トークンを設定します。

具体的な RememberMeServices 実装では、RememberMeServices.autoLogin(HttpServletRequest, HttpServletResponse) メソッドがこのフィルターによって呼び出されます。このメソッドが null 以外の Authentication オブジェクトを返す場合、オブジェクトは AuthenticationManager に渡されるため、認証固有の動作を実現できます。結果の Authentication (成功した場合)は SecurityContext に配置されます。

認証が成功すると、InteractiveAuthenticationSuccessEvent がアプリケーションコンテキストに発行されます。認証が失敗した場合、イベントは公開されません。これは通常、AuthenticationManager -specific アプリケーションイベントを介して記録されるためです。

通常、認証が成功したか失敗したかに関係なく、リクエストは続行できます。認証済みユーザーの宛先を制御する必要がある場合は、AuthenticationSuccessHandler を挿入できます

  • コンストラクターの詳細

  • メソッドの詳細

    • afterPropertiesSet

      public void afterPropertiesSet()
      次で指定:
      インターフェース org.springframework.beans.factory.InitializingBeanafterPropertiesSet 
      オーバーライド:
      クラス org.springframework.web.filter.GenericFilterBeanafterPropertiesSet 
    • doFilter

      public void doFilter(jakarta.servlet.ServletRequest request, jakarta.servlet.ServletResponse response, jakarta.servlet.FilterChain chain) throws IOExceptionSE, jakarta.servlet.ServletException
      次で指定:
      インターフェース jakarta.servlet.FilterdoFilter 
      例外:
      IOExceptionSE
      jakarta.servlet.ServletException
    • onSuccessfulAuthentication

      protected void onSuccessfulAuthentication(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, Authentication authResult)
      記憶記憶トークンが提示され、RememberMeServicesautoLogin メソッドおよび AuthenticationManager によって正常に認証された場合に呼び出されます。
    • onUnsuccessfulAuthentication

      protected void onUnsuccessfulAuthentication(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, AuthenticationException failed)
      AuthenticationManager が RememberMeServicesautoLogin メソッドから返された認証オブジェクトを拒否した場合に呼び出されます。このメソッドは、remember-me トークンがリクエストに存在せず、autoLogin が null を返す場合は呼び出されません。
    • getRememberMeServices

      public RememberMeServices getRememberMeServices()
    • setApplicationEventPublisher

      public void setApplicationEventPublisher(org.springframework.context.ApplicationEventPublisher eventPublisher)
      次で指定:
      インターフェース org.springframework.context.ApplicationEventPublisherAwaresetApplicationEventPublisher 
    • setAuthenticationSuccessHandler

      public void setAuthenticationSuccessHandler(AuthenticationSuccessHandler successHandler)
      認証に成功したときに記憶されたユーザーの送信先を制御できます。デフォルトでは、フィルターは現在のリクエストの続行のみを許可しますが、AuthenticationSuccessHandler が設定されている場合、それが呼び出され、doFilter() メソッドがすぐに返されるため、元のアプリケーションに関係なく、アプリケーションはユーザーを特定の URL にリダイレクトできます。リクエストがあった。
      パラメーター:
      successHandler - doFilter() から戻る直前に呼び出す戦略。
    • setSecurityContextRepository

      public void setSecurityContextRepository(SecurityContextRepository securityContextRepository)
      認証が成功したときに SecurityContext を保存するように SecurityContextRepository を設定します。デフォルトのアクションは、SecurityContext を保存しないことです。
      パラメーター:
      securityContextRepository - 使用する SecurityContextRepository。null にはできません。
    • setSecurityContextHolderStrategy

      public void setSecurityContextHolderStrategy(SecurityContextHolderStrategy securityContextHolderStrategy)
      使用する SecurityContextHolderStrategy を設定します。デフォルトのアクションは、SecurityContextHolder に格納されている SecurityContextHolderStrategy を使用することです。
      導入:
      5.8