クラス AbstractAuthenticationTargetUrlRequestHandler

java.lang.ObjectSE
org.springframework.security.web.authentication.AbstractAuthenticationTargetUrlRequestHandler
既知の直属サブクラス
SimpleUrlAuthenticationSuccessHandlerSimpleUrlLogoutSuccessHandler

public abstract class AbstractAuthenticationTargetUrlRequestHandler extends ObjectSE
URL へのリダイレクトを処理し、契約の一部として Authentication オブジェクトを渡す戦略で使用されるロジックを含む基本クラス。たとえば、AuthenticationSuccessHandler および LogoutSuccessHandler を参照してください。

次のロジックシーケンスを使用して、フォワード / リダイレクトの処理方法を決定します

  • alwaysUseDefaultTargetUrl プロパティが true に設定されている場合、defaultTargetUrl プロパティが宛先に使用されます。
  • targetUrlParameter の値に一致するパラメーターがリクエストで設定されている場合、その値が宛先として使用されます。この機能を有効にする場合は、攻撃者がパラメーターを使用してユーザーを悪意のあるサイトにリダイレクトできないようにする必要があります(たとえば、パラメーターが含まれる URL をクリックして)。通常、パラメーターがログインフォームに含まれ、ユーザー名とパスワードと共に送信されるときに使用されます。
  • useReferer プロパティが設定されている場合、"Referer" HTTP ヘッダー値が使用されます(存在する場合)。
  • フォールバックオプションとして、defaultTargetUrl 値が使用されます。
導入:
3.0
  • フィールドサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    protected final org.apache.commons.logging.Log
  • コンストラクターのサマリー

    コンストラクター
    修飾子
    コンストラクター
    説明
    protected
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    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 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
    ターゲット URL にリダイレクトするときの動作をオーバーライドできます。
    void
    setTargetUrlParameter(StringSE targetUrlParameter)
    このプロパティが設定されている場合、現在のリクエストは、この名前と、存在する場合はターゲット URL として使用される値を持つパラメーターについてチェックされます。
    void
    setUseReferer(boolean useReferer)
    true に設定すると、Referer ヘッダーが使用されます(使用可能な場合)。

    クラス java.lang.ObjectSE から継承されたメソッド

    clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
  • フィールドの詳細

    • 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

      protected final StringSE getDefaultTargetUrl()
      保存されたリクエストが見つからないか、alwaysUseDefaultTargetUrl プロパティが true に設定されている場合に使用されるデフォルトのターゲット URL を提供します。設定しない場合、デフォルトは / になります。
      戻り値:
      defaultTargetUrl プロパティ
    • setDefaultTargetUrl

      public void setDefaultTargetUrl(StringSE 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(StringSE targetUrlParameter)
      このプロパティが設定されている場合、現在のリクエストは、この名前と、存在する場合はターゲット URL として使用される値を持つパラメーターについてチェックされます。
      パラメーター:
      targetUrlParameter - エンコードされたターゲット URL を含むパラメーターの名前。デフォルトは null です。
    • getTargetUrlParameter

      protected StringSE getTargetUrlParameter()
    • setRedirectStrategy

      public void setRedirectStrategy(RedirectStrategy redirectStrategy)
      ターゲット URL にリダイレクトするときの動作をオーバーライドできます。
    • getRedirectStrategy

      protected RedirectStrategy getRedirectStrategy()
    • setUseReferer

      public void setUseReferer(boolean useReferer)
      true に設定すると、Referer ヘッダーが使用されます(使用可能な場合)。デフォルトは false です。