クラス AbstractAuthenticationTargetUrlRequestHandler
- java.lang.Object
-
- org.springframework.security.web.authentication.AbstractAuthenticationTargetUrlRequestHandler
public abstract class AbstractAuthenticationTargetUrlRequestHandler extends java.lang.Object
URL へのリダイレクトを処理し、契約の一部としてAuthentication
オブジェクトを渡す戦略で使用されるロジックを含む基本クラス。たとえば、AuthenticationSuccessHandler
およびLogoutSuccessHandler
を参照してください。次のロジックシーケンスを使用して、フォワード / リダイレクトの処理方法を決定します
alwaysUseDefaultTargetUrl
プロパティが true に設定されている場合、defaultTargetUrl
プロパティが宛先に使用されます。targetUrlParameter
の値に一致するパラメーターがリクエストで設定されている場合、その値が宛先として使用されます。この機能を有効にする場合は、攻撃者がパラメーターを使用してユーザーを悪意のあるサイトにリダイレクトできないようにする必要があります(たとえば、パラメーターが含まれる URL をクリックして)。通常、パラメーターがログインフォームに含まれ、ユーザー名とパスワードと共に送信されるときに使用されます。useReferer
プロパティが設定されている場合、"Referer" HTTP ヘッダー値が使用されます(存在する場合)。- フォールバックオプションとして、
defaultTargetUrl
値が使用されます。
- 導入:
- 3.0
フィールドサマリー
フィールド 修飾子と型 フィールド 説明 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
ヘッダーが使用されます(使用可能な場合)。
メソッドの詳細
handle
protected void handle(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, Authentication authentication) throws java.io.IOException, javax.servlet.ServletException
determineTargetUrl
メソッドによって返された URL を使用して、構成されたRedirectStrategy
を呼び出します。レスポンスがすでにコミットされている場合、リダイレクトは実行されません。
- 例外:
java.io.IOException
javax.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
です。