クラス 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 StringSEfinal StringSEprotected StringSEobtainPassword(jakarta.servlet.http.HttpServletRequest request) 追加の値や区切り記号を含めるなどして、サブクラスがパスワードの構成をオーバーライドできるようにします。protected StringSEobtainUsername(jakarta.servlet.http.HttpServletRequest request) サブクラスがユーザー名の構成をオーバーライドできるようにします(追加の値やセパレーターを含めるなど)。protected voidsetDetails(jakarta.servlet.http.HttpServletRequest request, UsernamePasswordAuthenticationToken authRequest) サブクラスが認証リクエストの詳細プロパティに何を入れるかを構成できるように提供されています。voidsetPasswordParameter(StringSE passwordParameter) ログインリクエストからパスワードを取得するために使用されるパラメーター名を設定します。voidsetPostOnly(boolean postOnly) このフィルターで HTTP POST リクエストのみが許可されるかどうかを定義します。voidsetUsernameParameter(StringSE usernameParameter) ログインリクエストからユーザー名を取得するために使用されるパラメーター名を設定します。クラス org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter から継承されたメソッド
afterPropertiesSet, doFilter, getAllowSessionCreation, getAuthenticationManager, getFailureHandler, getRememberMeServices, getSuccessHandler, requiresAuthentication, setAllowSessionCreation, setApplicationEventPublisher, setAuthenticationConverter, setAuthenticationDetailsSource, setAuthenticationFailureHandler, setAuthenticationManager, setAuthenticationSuccessHandler, setContinueChainBeforeSuccessfulAuthentication, setFilterProcessesUrl, setMessageSource, setMfaEnabled, 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