クラス AbstractAuthenticationTargetUrlRequestHandler

  • 既知の直属サブクラス
    SimpleUrlAuthenticationSuccessHandlerSimpleUrlLogoutSuccessHandler

    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.Loglogger
    • メソッドのサマリー

      すべてのメソッド   インスタンスメソッド   具象メソッド  
      修飾子と型 メソッド 説明
      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 ヘッダーが使用されます(使用可能な場合)。
      • クラス java.lang.Object から継承されたメソッド

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

      • logger

        protected final org.apache.commons.logging.Log logger
    • コンストラクターの詳細

      • AbstractAuthenticationTargetUrlRequestHandler

        protected AbstractAuthenticationTargetUrlRequestHandler()
    • メソッドの詳細

      • 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 にリダイレクトするときの動作をオーバーライドできます。
      • setUseReferer

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