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