クラス 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 StringSE
determineTargetUrl
(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) メインクラス Javadoc で定義されたロジックに従ってターゲット URL を構築します。protected StringSE
determineTargetUrl
(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, Authentication authentication) メインクラス Javadoc で定義されたロジックに従ってターゲット URL を構築しますprotected final StringSE
保存されたリクエストが見つからないか、alwaysUseDefaultTargetUrl
プロパティが true に設定されている場合に使用されるデフォルトのターゲット URL を提供します。protected RedirectStrategy
protected StringSE
protected void
handle
(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, Authentication authentication) determineTargetUrl
メソッドによって返された URL を使用して、構成されたRedirectStrategy
を呼び出します。protected boolean
void
setAlwaysUseDefaultTargetUrl
(boolean alwaysUseDefaultTargetUrl) true
の場合、常にdefaultTargetUrl
の値にリダイレクトされます(デフォルトはfalse
)。void
setDefaultTargetUrl
(StringSE defaultTargetUrl) セッションで保存されたリクエストが見つからない場合、またはalwaysUseDefaultTargetUrl
プロパティが true に設定されている場合に使用されるデフォルトのターゲット URL を提供します。void
setRedirectStrategy
(RedirectStrategy redirectStrategy) ターゲット URL にリダイレクトするときの動作をオーバーライドできます。void
setTargetUrlParameter
(StringSE targetUrlParameter) このプロパティが設定されている場合、現在のリクエストは、この名前と、存在する場合はターゲット URL として使用される値を持つパラメーターについてチェックされます。void
setUseReferer
(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
を呼び出します。レスポンスがすでにコミットされている場合、リダイレクトは実行されません。
- 例外:
IOExceptionSE
jakarta.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 にリダイレクトするときの動作をオーバーライドできます。getRedirectStrategy
setUseReferer
public void setUseReferer(boolean useReferer) true
に設定すると、Referer
ヘッダーが使用されます(使用可能な場合)。デフォルトはfalse
です。