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