public abstract class AbstractAuthenticationTargetUrlRequestHandler
extends java.lang.ObjectAuthentication オブジェクトを渡す戦略で使用されるロジックを含む基本クラス。たとえば、AuthenticationSuccessHandler および LogoutSuccessHandler を参照してください。次のロジックシーケンスを使用して、フォワード / リダイレクトの処理方法を決定します
alwaysUseDefaultTargetUrl プロパティが true に設定されている場合、defaultTargetUrl プロパティが宛先に使用されます。targetUrlParameter の値に一致するパラメーターがリクエストで設定されている場合、その値が宛先として使用されます。この機能を有効にする場合は、攻撃者がパラメーターを使用してユーザーを悪意のあるサイトにリダイレクトできないようにする必要があります(たとえば、パラメーターが含まれる URL をクリックして)。通常、パラメーターがログインフォームに含まれ、ユーザー名とパスワードと共に送信されるときに使用されます。useReferer プロパティが設定されている場合、"Referer" HTTP ヘッダー値が使用されます(存在する場合)。defaultTargetUrl 値が使用されます。| 修飾子と型 | フィールドと説明 |
|---|---|
protected org.apache.commons.logging.Log | logger |
| 修飾子 | コンストラクターと説明 |
|---|---|
protected | AbstractAuthenticationTargetUrlRequestHandler() |
| 修飾子と型 | メソッドと説明 |
|---|---|
protected java.lang.String | determineTargetUrl(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) メインクラス Javadoc で定義されたロジックに従ってターゲット URL を構築します。 |
protected java.lang.String | determineTargetUrl(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, Authentication authentication) メインクラス Javadoc で定義されたロジックに従ってターゲット URL を構築します |
protected java.lang.String | getDefaultTargetUrl() 保存されたリクエストが見つからないか、 alwaysUseDefaultTargetUrl プロパティが true に設定されている場合に使用されるデフォルトのターゲット URL を提供します。 |
protected RedirectStrategy | getRedirectStrategy() |
protected java.lang.String | getTargetUrlParameter() |
protected void | handle(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, Authentication authentication)determineTargetUrl メソッドによって返された URL を使用して、構成された RedirectStrategy を呼び出します。 |
protected boolean | isAlwaysUseDefaultTargetUrl() |
void | setAlwaysUseDefaultTargetUrl(boolean alwaysUseDefaultTargetUrl)true の場合、常に defaultTargetUrl の値にリダイレクトされます(デフォルトは false)。 |
void | setDefaultTargetUrl(java.lang.String defaultTargetUrl) セッションで保存されたリクエストが見つからない場合、または alwaysUseDefaultTargetUrl プロパティが true に設定されている場合に使用されるデフォルトのターゲット URL を提供します。 |
void | setRedirectStrategy(RedirectStrategy redirectStrategy) ターゲット URL にリダイレクトするときの動作をオーバーライドできます。 |
void | setTargetUrlParameter(java.lang.String targetUrlParameter) このプロパティが設定されている場合、現在のリクエストは、この名前と、存在する場合はターゲット URL として使用される値を持つパラメーターについてチェックされます。 |
void | setUseReferer(boolean useReferer)true に設定すると、Referer ヘッダーが使用されます(使用可能な場合)。 |
protected AbstractAuthenticationTargetUrlRequestHandler()
protected void handle(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response,
Authentication authentication)
throws java.io.IOException,
javax.servlet.ServletExceptiondetermineTargetUrl メソッドによって返された URL を使用して、構成された RedirectStrategy を呼び出します。レスポンスがすでにコミットされている場合、リダイレクトは実行されません。
java.io.IOExceptionjavax.servlet.ServletExceptionprotected java.lang.String determineTargetUrl(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response,
Authentication authentication)protected java.lang.String determineTargetUrl(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)protected final java.lang.String getDefaultTargetUrl()
alwaysUseDefaultTargetUrl プロパティが true に設定されている場合に使用されるデフォルトのターゲット URL を提供します。設定しない場合、デフォルトは / になります。public void setDefaultTargetUrl(java.lang.String defaultTargetUrl)
alwaysUseDefaultTargetUrl プロパティが true に設定されている場合に使用されるデフォルトのターゲット URL を提供します。設定されていない場合、デフォルトは / です。これは、Web アプリのコンテキストパスに関連するものとして扱われ、先頭の / を含める必要があります。または、プレフィックスとしてスキーム名("http://" や "https://" など)を含めると、完全修飾 URL を示します。これもサポートされています。defaultTargetUrl -public void setAlwaysUseDefaultTargetUrl(boolean alwaysUseDefaultTargetUrl)
true の場合、常に defaultTargetUrl の値にリダイレクトされます(デフォルトは false)。protected boolean isAlwaysUseDefaultTargetUrl()
public void setTargetUrlParameter(java.lang.String targetUrlParameter)
targetUrlParameter - エンコードされたターゲット URL を含むパラメーターの名前。デフォルトは null です。protected java.lang.String getTargetUrlParameter()
public void setRedirectStrategy(RedirectStrategy redirectStrategy)
protected RedirectStrategy getRedirectStrategy()
public void setUseReferer(boolean useReferer)
true に設定すると、Referer ヘッダーが使用されます(使用可能な場合)。デフォルトは false です。