クラス CsrfFilter

  • 実装されたすべてのインターフェース:
    javax.servlet.Filterorg.springframework.beans.factory.Awareorg.springframework.beans.factory.BeanNameAwareorg.springframework.beans.factory.DisposableBeanorg.springframework.beans.factory.InitializingBeanorg.springframework.context.EnvironmentAwareorg.springframework.core.env.EnvironmentCapableorg.springframework.web.context.ServletContextAware

    public final class CsrfFilter
    extends org.springframework.web.filter.OncePerRequestFilter

    シンクロナイザトークンパターンを使用して CSRF 保護を適用します。開発者は、状態の変更を許可するすべてのリクエストに対して CsrfFilter が呼び出されるようにする必要があります。通常これは、Web アプリケーションが適切な REST セマンティクスに従っていることを確認する必要があることを意味します(つまり、HTTP メソッド GET、HEAD、TRACE、OPTIONS で状態を変更しないでください)。

    通常、CsrfTokenRepository 実装は、LazyCsrfTokenRepository によってラップされた HttpSessionCsrfTokenRepository を使用して、CsrfToken を HttpSession に格納することを選択します。これは、クライアントアプリケーションで変更できる Cookie にトークンを保存するよりも推奨する方法です。

    導入:
    3.2
    • フィールドサマリー

      フィールド  
      修飾子と型 フィールド 説明
      static RequestMatcherDEFAULT_CSRF_MATCHER
      CSRF 保護が必要かどうかを示すデフォルトの RequestMatcher
      • クラス org.springframework.web.filter.OncePerRequestFilter から継承されたフィールド

        ALREADY_FILTERED_SUFFIX
    • コンストラクターのサマリー

      コンストラクター  
      コンストラクター 説明
      CsrfFilter​(CsrfTokenRepository csrfTokenRepository)
    • メソッドのサマリー

      すべてのメソッド   静的メソッド   インスタンスメソッド   具象メソッド  
      修飾子と型 メソッド 説明
      protected voiddoFilterInternal​(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, javax.servlet.FilterChain filterChain)
      voidsetAccessDeniedHandler​(AccessDeniedHandler accessDeniedHandler)
      CSRF 保護が失敗したときに使用する AccessDeniedHandler を指定します。
      voidsetRequireCsrfProtectionMatcher​(RequestMatcher requireCsrfProtectionMatcher)
      CSRF 保護を適用する必要があるかどうかを判別するために使用される RequestMatcher を指定します。
      protected booleanshouldNotFilter​(javax.servlet.http.HttpServletRequest request)
      static voidskipRequest​(javax.servlet.http.HttpServletRequest request)
      • クラス org.springframework.web.filter.OncePerRequestFilter から継承されたメソッド

        doFilter, doFilterNestedErrorDispatch, getAlreadyFilteredAttributeName, isAsyncDispatch, isAsyncStarted, shouldNotFilterAsyncDispatch, shouldNotFilterErrorDispatch
      • クラス org.springframework.web.filter.GenericFilterBean から継承されたメソッド

        addRequiredProperty, afterPropertiesSet, createEnvironment, destroy, getEnvironment, getFilterConfig, getFilterName, getServletContext, init, initBeanWrapper, initFilterBean, setBeanName, setEnvironment, setServletContext
      • クラス java.lang.Object から継承されたメソッド

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

      • DEFAULT_CSRF_MATCHER

        public static final RequestMatcher DEFAULT_CSRF_MATCHER
        CSRF 保護が必要かどうかを示すデフォルトの RequestMatcher。デフォルトでは、GET、HEAD、TRACE、OPTIONS を無視し、他のすべてのリクエストを処理します。
    • コンストラクターの詳細

    • メソッドの詳細

      • shouldNotFilter

        protected boolean shouldNotFilter​(javax.servlet.http.HttpServletRequest request)
                                   throws javax.servlet.ServletException
        オーバーライド:
        クラス org.springframework.web.filter.OncePerRequestFiltershouldNotFilter 
        例外:
        javax.servlet.ServletException
      • doFilterInternal

        protected void doFilterInternal​(javax.servlet.http.HttpServletRequest request,
                                        javax.servlet.http.HttpServletResponse response,
                                        javax.servlet.FilterChain filterChain)
                                 throws javax.servlet.ServletException,
                                        java.io.IOException
        次で指定:
        クラス org.springframework.web.filter.OncePerRequestFilterdoFilterInternal 
        例外:
        javax.servlet.ServletException
        java.io.IOException
      • skipRequest

        public static void skipRequest​(javax.servlet.http.HttpServletRequest request)
      • setRequireCsrfProtectionMatcher

        public void setRequireCsrfProtectionMatcher​(RequestMatcher requireCsrfProtectionMatcher)
        CSRF 保護を適用する必要があるかどうかを判別するために使用される RequestMatcher を指定します。RequestMatcher が特定のリクエストに対して true を返す場合、CSRF 保護が適用されます。

        デフォルトでは、GET、HEAD、TRACE、OPTIONS 以外の HTTP メソッドに CSRF 保護を適用します。

        パラメーター:
        requireCsrfProtectionMatcher - CSRF 保護を適用する必要があるかどうかを判断するために使用される RequestMatcher
      • setAccessDeniedHandler

        public void setAccessDeniedHandler​(AccessDeniedHandler accessDeniedHandler)
        CSRF 保護が失敗したときに使用する AccessDeniedHandler を指定します。

        デフォルトでは、引数なしで AccessDeniedHandlerImpl を使用します。

        パラメーター:
        accessDeniedHandler - 使用する AccessDeniedHandler