クラス UsernamePasswordAuthenticationFilter
- java.lang.Object
-
- org.springframework.web.filter.GenericFilterBean
-
- org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter
-
- org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter
- 実装されたすべてのインターフェース:
javax.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
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
フィールドサマリー
フィールド 修飾子と型 フィールド 説明 static java.lang.String
SPRING_SECURITY_FORM_PASSWORD_KEY
static java.lang.String
SPRING_SECURITY_FORM_USERNAME_KEY
クラス org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter から継承されたフィールド
authenticationDetailsSource, eventPublisher, messages
コンストラクターのサマリー
コンストラクター コンストラクター 説明 UsernamePasswordAuthenticationFilter()
UsernamePasswordAuthenticationFilter(AuthenticationManager authenticationManager)
メソッドのサマリー
すべてのメソッド インスタンスメソッド 具象メソッド 修飾子と型 メソッド 説明 Authentication
attemptAuthentication(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
実際の認証を実行します。java.lang.String
getPasswordParameter()
java.lang.String
getUsernameParameter()
protected java.lang.String
obtainPassword(javax.servlet.http.HttpServletRequest request)
追加の値や区切り記号を含めるなどして、サブクラスがパスワードの構成をオーバーライドできるようにします。protected java.lang.String
obtainUsername(javax.servlet.http.HttpServletRequest request)
サブクラスがユーザー名の構成をオーバーライドできるようにします(追加の値やセパレーターを含めるなど)。protected void
setDetails(javax.servlet.http.HttpServletRequest request, UsernamePasswordAuthenticationToken authRequest)
サブクラスが認証リクエストの詳細プロパティに何を入れるかを構成できるように提供されています。void
setPasswordParameter(java.lang.String passwordParameter)
ログインリクエストからパスワードを取得するために使用されるパラメーター名を設定します。void
setPostOnly(boolean postOnly)
このフィルターで HTTP POST リクエストのみが許可されるかどうかを定義します。void
setUsernameParameter(java.lang.String 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, setSecurityContextRepository, setSessionAuthenticationStrategy, successfulAuthentication, unsuccessfulAuthentication
コンストラクターの詳細
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
実際の認証を実行します。実装では、次のいずれかを実行する必要があります。
- 認証されたユーザーの移入された認証トークンを返し、認証の成功を示します
- 認証プロセスがまだ進行中であることを示す null を返します。戻る前に、実装はプロセスを完了するために必要な追加作業を実行する必要があります。
- 認証プロセスが失敗した場合、 AuthenticationException をスローします
- 次で指定:
- クラス
AbstractAuthenticationProcessingFilter
のattemptAuthentication
- パラメーター:
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()