クラス UsernamePasswordAuthenticationFilter

  • 実装されたすべてのインターフェース:
    javax.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
    • フィールドの詳細

      • SPRING_SECURITY_FORM_USERNAME_KEY

        public static final java.lang.String SPRING_SECURITY_FORM_USERNAME_KEY
        関連事項:
        定数フィールド値
      • SPRING_SECURITY_FORM_PASSWORD_KEY

        public static final java.lang.String SPRING_SECURITY_FORM_PASSWORD_KEY
        関連事項:
        定数フィールド値
    • コンストラクターの詳細

      • UsernamePasswordAuthenticationFilter

        public UsernamePasswordAuthenticationFilter()
      • UsernamePasswordAuthenticationFilter

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

      • attemptAuthentication

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

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

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

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

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

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

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

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

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

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

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

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

      • getUsernameParameter

        public final java.lang.String getUsernameParameter()
      • getPasswordParameter

        public final java.lang.String getPasswordParameter()