クラス UsernamePasswordAuthenticationFilter
java.lang.ObjectSE
org.springframework.web.filter.GenericFilterBean
org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter
org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter
- 実装されたすべてのインターフェース:
jakarta.servlet.Filter
、org.springframework.beans.factory.Aware
、org.springframework.beans.factory.BeanNameAware
、org.springframework.beans.factory.DisposableBean
、org.springframework.beans.factory.InitializingBean
、org.springframework.context.ApplicationEventPublisherAware
、org.springframework.context.EnvironmentAware
、org.springframework.context.MessageSourceAware
、org.springframework.core.env.EnvironmentCapable
、org.springframework.web.context.ServletContextAware
認証フォームの送信を処理します。Spring Security 3.0 の前に
AuthenticationProcessingFilter
と呼ばれていました。 ログインフォームは、このフィルターに 2 つのパラメーター(ユーザー名とパスワード)を提示する必要があります。使用するデフォルトのパラメーター名は、静的フィールド SPRING_SECURITY_FORM_USERNAME_KEY
および SPRING_SECURITY_FORM_PASSWORD_KEY
に含まれています。パラメーター名は、usernameParameter
および passwordParameter
プロパティを設定して変更することもできます。
このフィルターは、デフォルトで URL /login
に応答します。
- 導入:
- 3.0
フィールドのサマリー
フィールドクラス org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter から継承されたフィールド
authenticationDetailsSource, eventPublisher, messages
クラス org.springframework.web.filter.GenericFilterBean から継承されたフィールド
logger
コンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明attemptAuthentication
(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) 実際の認証を実行します。final StringSE
final StringSE
protected StringSE
obtainPassword
(jakarta.servlet.http.HttpServletRequest request) 追加の値や区切り記号を含めるなどして、サブクラスがパスワードの構成をオーバーライドできるようにします。protected StringSE
obtainUsername
(jakarta.servlet.http.HttpServletRequest request) サブクラスがユーザー名の構成をオーバーライドできるようにします(追加の値やセパレーターを含めるなど)。protected void
setDetails
(jakarta.servlet.http.HttpServletRequest request, UsernamePasswordAuthenticationToken authRequest) サブクラスが認証リクエストの詳細プロパティに何を入れるかを構成できるように提供されています。void
setPasswordParameter
(StringSE passwordParameter) ログインリクエストからパスワードを取得するために使用されるパラメーター名を設定します。void
setPostOnly
(boolean postOnly) このフィルターで HTTP POST リクエストのみが許可されるかどうかを定義します。void
setUsernameParameter
(StringSE usernameParameter) ログインリクエストからユーザー名を取得するために使用されるパラメーター名を設定します。クラス org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter から継承されたメソッド
afterPropertiesSet, doFilter, getAllowSessionCreation, getAuthenticationManager, getFailureHandler, getRememberMeServices, getSuccessHandler, requiresAuthentication, setAllowSessionCreation, setApplicationEventPublisher, setAuthenticationDetailsSource, setAuthenticationFailureHandler, setAuthenticationManager, setAuthenticationSuccessHandler, setContinueChainBeforeSuccessfulAuthentication, setFilterProcessesUrl, setMessageSource, setRememberMeServices, setRequiresAuthenticationRequestMatcher, setSecurityContextHolderStrategy, setSecurityContextRepository, setSessionAuthenticationStrategy, successfulAuthentication, unsuccessfulAuthentication
クラス org.springframework.web.filter.GenericFilterBean から継承されたメソッド
addRequiredProperty, createEnvironment, destroy, getEnvironment, getFilterConfig, getFilterName, getServletContext, init, initBeanWrapper, initFilterBean, setBeanName, setEnvironment, setServletContext
フィールドの詳細
コンストラクターの詳細
UsernamePasswordAuthenticationFilter
public UsernamePasswordAuthenticationFilter()UsernamePasswordAuthenticationFilter
メソッドの詳細
attemptAuthentication
public Authentication attemptAuthentication(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) throws AuthenticationException クラスからコピーされた説明:AbstractAuthenticationProcessingFilter
実際の認証を実行します。実装では、次のいずれかを実行する必要があります。
- 認証されたユーザーの移入された認証トークンを返し、認証の成功を示します
- 認証プロセスがまだ進行中であることを示す null を返します。戻る前に、実装はプロセスを完了するために必要な追加作業を実行する必要があります。
- 認証プロセスが失敗した場合、 AuthenticationException をスローします
- 次で指定:
- クラス
AbstractAuthenticationProcessingFilter
のattemptAuthentication
- パラメーター:
request
- パラメーターの抽出元および認証の実行元response
- レスポンス。これは、実装が多段階認証プロセス (OIDC など) の一部としてリダイレクトを行う必要がある場合に必要になる場合があります。- 戻り値:
- 認証されたユーザートークン。認証が不完全な場合は null
- 例外:
AuthenticationException
- 認証が失敗した場合。
obtainPassword
追加の値や区切り記号を含めるなどして、サブクラスがパスワードの構成をオーバーライドできるようにします。これは、パスワードに加えて郵便番号 / 郵便番号が必要な場合などに使用できます。パイプ(|)などの区切り文字を使用して、パスワードと拡張値を区切る必要があります。
AuthenticationDao
は、対応する方法で予想されるパスワードを生成する必要があります。- パラメーター:
request
- リクエスト属性を取得できるように- 戻り値:
Authentication
リクエストトークンでAuthenticationManager
に提示されるパスワード
obtainUsername
サブクラスがユーザー名の構成をオーバーライドできるようにします(追加の値やセパレーターを含めるなど)。- パラメーター:
request
- リクエスト属性を取得できるように- 戻り値:
AuthenticationManager
へのAuthentication
リクエストトークンで提示されるユーザー名
setDetails
protected void setDetails(jakarta.servlet.http.HttpServletRequest request, UsernamePasswordAuthenticationToken authRequest) サブクラスが認証リクエストの詳細プロパティに何を入れるかを構成できるように提供されています。- パラメーター:
request
- 認証リクエストが作成されていることauthRequest
- 詳細を設定する必要がある認証リクエストオブジェクト
setUsernameParameter
ログインリクエストからユーザー名を取得するために使用されるパラメーター名を設定します。- パラメーター:
usernameParameter
- パラメーター名。デフォルトは "username" です。
setPasswordParameter
ログインリクエストからパスワードを取得するために使用されるパラメーター名を設定します。- パラメーター:
passwordParameter
- パラメーター名。デフォルトは "password" です。
setPostOnly
public void setPostOnly(boolean postOnly) このフィルターで HTTP POST リクエストのみが許可されるかどうかを定義します。true に設定した場合、POST リクエストではない認証リクエストを受信すると、すぐに例外が発生し、認証は試行されません。 unsuccessfulAuthentication() メソッドは、失敗した認証を処理するかのように呼び出されます。デフォルトは true ですが、サブクラスによってオーバーライドされる場合があります。
getUsernameParameter
getPasswordParameter