クラス UsernamePasswordAuthenticationFilter

java.lang.ObjectSE
org.springframework.web.filter.GenericFilterBean
org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter
org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter
実装されたすべてのインターフェース:
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.context.MessageSourceAwareorg.springframework.core.env.EnvironmentCapableorg.springframework.web.context.ServletContextAware

public class UsernamePasswordAuthenticationFilter extends AbstractAuthenticationProcessingFilter
認証フォームの送信を処理します。Spring Security 3.0 の前に AuthenticationProcessingFilter と呼ばれていました。

ログインフォームは、このフィルターに 2 つのパラメーター(ユーザー名とパスワード)を提示する必要があります。使用するデフォルトのパラメーター名は、静的フィールド SPRING_SECURITY_FORM_USERNAME_KEY および SPRING_SECURITY_FORM_PASSWORD_KEY に含まれています。パラメーター名は、usernameParameter および passwordParameter プロパティを設定して変更することもできます。

このフィルターは、デフォルトで URL /login に応答します。

導入:
3.0
  • フィールドの詳細

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

    • UsernamePasswordAuthenticationFilter

      public UsernamePasswordAuthenticationFilter()
    • UsernamePasswordAuthenticationFilter

      public UsernamePasswordAuthenticationFilter(AuthenticationManager authenticationManager)
  • メソッドの詳細

    • attemptAuthentication

      public Authentication attemptAuthentication(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) throws AuthenticationException
      クラスからコピーされた説明: AbstractAuthenticationProcessingFilter
      実際の認証を実行します。

      実装では、次のいずれかを実行する必要があります。

      1. 認証されたユーザーの移入された認証トークンを返し、認証の成功を示します
      2. 認証プロセスがまだ進行中であることを示す null を返します。戻る前に、実装はプロセスを完了するために必要な追加作業を実行する必要があります。
      3. 認証プロセスが失敗した場合、 AuthenticationException をスローします
      次で指定:
      クラス AbstractAuthenticationProcessingFilterattemptAuthentication 
      パラメーター:
      request - パラメーターの抽出元および認証の実行元
      response - レスポンス。これは、実装が多段階認証プロセス (OIDC など) の一部としてリダイレクトを行う必要がある場合に必要になる場合があります。
      戻り値:
      認証されたユーザートークン。認証が不完全な場合は null
      例外:
      AuthenticationException - 認証が失敗した場合。
    • obtainPassword

      @Nullable protected StringSE obtainPassword(jakarta.servlet.http.HttpServletRequest request)
      追加の値や区切り記号を含めるなどして、サブクラスがパスワードの構成をオーバーライドできるようにします。

      これは、パスワードに加えて郵便番号 / 郵便番号が必要な場合などに使用できます。パイプ(|)などの区切り文字を使用して、パスワードと拡張値を区切る必要があります。AuthenticationDao は、対応する方法で予想されるパスワードを生成する必要があります。

      パラメーター:
      request - リクエスト属性を取得できるように
      戻り値:
      Authentication リクエストトークンで AuthenticationManager に提示されるパスワード
    • obtainUsername

      @Nullable protected StringSE obtainUsername(jakarta.servlet.http.HttpServletRequest request)
      サブクラスがユーザー名の構成をオーバーライドできるようにします(追加の値やセパレーターを含めるなど)。
      パラメーター:
      request - リクエスト属性を取得できるように
      戻り値:
      AuthenticationManager への Authentication リクエストトークンで提示されるユーザー名
    • setDetails

      protected void setDetails(jakarta.servlet.http.HttpServletRequest request, UsernamePasswordAuthenticationToken authRequest)
      サブクラスが認証リクエストの詳細プロパティに何を入れるかを構成できるように提供されています。
      パラメーター:
      request - 認証リクエストが作成されていること
      authRequest - 詳細を設定する必要がある認証リクエストオブジェクト
    • setUsernameParameter

      public void setUsernameParameter(StringSE usernameParameter)
      ログインリクエストからユーザー名を取得するために使用されるパラメーター名を設定します。
      パラメーター:
      usernameParameter - パラメーター名。デフォルトは "username" です。
    • setPasswordParameter

      public void setPasswordParameter(StringSE passwordParameter)
      ログインリクエストからパスワードを取得するために使用されるパラメーター名を設定します。
      パラメーター:
      passwordParameter - パラメーター名。デフォルトは "password" です。
    • setPostOnly

      public void setPostOnly(boolean postOnly)
      このフィルターで HTTP POST リクエストのみが許可されるかどうかを定義します。true に設定した場合、POST リクエストではない認証リクエストを受信すると、すぐに例外が発生し、認証は試行されません。 unsuccessfulAuthentication() メソッドは、失敗した認証を処理するかのように呼び出されます。

      デフォルトは true ですが、サブクラスによってオーバーライドされる場合があります。

    • getUsernameParameter

      public final StringSE getUsernameParameter()
    • getPasswordParameter

      public final StringSE getPasswordParameter()