CsrfPreventionFilter.CsrfResponseWrapper (Apache Tomcat 9.0.120 API Documentation)
Description: declaration: package: org.apache.catalina.filters, class: CsrfPreventionFilter, class: CsrfResponseWrapper

# Class CsrfPreventionFilter.CsrfResponseWrapper

java.lang.Object
javax.servlet.ServletResponseWrapper
javax.servlet.http.HttpServletResponseWrapper
org.apache.catalina.filters.CsrfPreventionFilter.CsrfResponseWrapper

All Implemented Interfaces:
  `HttpServletResponse, ServletResponse`

Enclosing class:
  `CsrfPreventionFilter`

protected static class CsrfPreventionFilter.CsrfResponseWrapper extends HttpServletResponseWrapper
Wrapper for `HttpServletResponse` that adds CSRF nonces to encoded URLs.

- ## Field Summary

  ### Fields inherited from interface HttpServletResponse

  `SC_ACCEPTED, SC_BAD_GATEWAY, SC_BAD_REQUEST, SC_CONFLICT, SC_CONTINUE, SC_CREATED, SC_EXPECTATION_FAILED, SC_FORBIDDEN, SC_FOUND, SC_GATEWAY_TIMEOUT, SC_GONE, SC_HTTP_VERSION_NOT_SUPPORTED, SC_INTERNAL_SERVER_ERROR, SC_LENGTH_REQUIRED, SC_METHOD_NOT_ALLOWED, SC_MOVED_PERMANENTLY, SC_MOVED_TEMPORARILY, SC_MULTIPLE_CHOICES, SC_NO_CONTENT, SC_NON_AUTHORITATIVE_INFORMATION, SC_NOT_ACCEPTABLE, SC_NOT_FOUND, SC_NOT_IMPLEMENTED, SC_NOT_MODIFIED, SC_OK, SC_PARTIAL_CONTENT, SC_PAYMENT_REQUIRED, SC_PRECONDITION_FAILED, SC_PROXY_AUTHENTICATION_REQUIRED, SC_REQUEST_ENTITY_TOO_LARGE, SC_REQUEST_TIMEOUT, SC_REQUEST_URI_TOO_LONG, SC_REQUESTED_RANGE_NOT_SATISFIABLE, SC_RESET_CONTENT, SC_SEE_OTHER, SC_SERVICE_UNAVAILABLE, SC_SWITCHING_PROTOCOLS, SC_TEMPORARY_REDIRECT, SC_UNAUTHORIZED, SC_UNSUPPORTED_MEDIA_TYPE, SC_USE_PROXY`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `CsrfResponseWrapper(HttpServletRequest request, HttpServletResponse response, String nonceRequestParameterName, String nonce, Collection<Predicate<String>> noNoncePatterns)`
  Construct a new CsrfResponseWrapper.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `encodeRedirectUrl(String url)`
  Deprecated.
  `String`
  `encodeRedirectURL(String url)`
  The default behavior of this method is to return encodeRedirectURL(String url) on the wrapped response object.
  `String`
  `encodeUrl(String url)`
  Deprecated.
  `String`
  `encodeURL(String url)`
  The default behavior of this method is to call encodeURL(String url) on the wrapped response object.
  `static String`
  `removeQueryParameters(String url, String parameterName)`
  Removes zero or more query parameters from a URL.

  ### Methods inherited from class HttpServletResponseWrapper

  `addCookie, addDateHeader, addHeader, addIntHeader, containsHeader, getHeader, getHeaderNames, getHeaders, getStatus, getTrailerFields, sendError, sendError, sendRedirect, setDateHeader, setHeader, setIntHeader, setStatus, setStatus, setTrailerFields`

  ### Methods inherited from class ServletResponseWrapper

  `flushBuffer, getBufferSize, getCharacterEncoding, getContentType, getLocale, getOutputStream, getResponse, getWriter, isCommitted, isWrapperFor, isWrapperFor, reset, resetBuffer, setBufferSize, setCharacterEncoding, setContentLength, setContentLengthLong, setContentType, setLocale, setResponse`

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface ServletResponse

  `flushBuffer, getBufferSize, getCharacterEncoding, getContentType, getLocale, getOutputStream, getWriter, isCommitted, reset, resetBuffer, setBufferSize, setCharacterEncoding, setContentLength, setContentLengthLong, setContentType, setLocale`

- ## Constructor Details

  - ### CsrfResponseWrapper

    public CsrfResponseWrapper(HttpServletRequest request, HttpServletResponse response, String nonceRequestParameterName, String nonce, Collection<Predicate<String>> noNoncePatterns)
    Construct a new CsrfResponseWrapper.
    Parameters:
      `request` - The associated request
      `response` - The wrapped response
      `nonceRequestParameterName` - The name of the nonce request parameter
      `nonce` - The current nonce value
      `noNoncePatterns` - The patterns for URLs that should not have nonces added

- ## Method Details

  - ### encodeRedirectUrl

    @Deprecated public String encodeRedirectUrl(String url)
    Deprecated.
    Description copied from class: `javax.servlet.http.HttpServletResponseWrapper`
    The default behavior of this method is to return encodeRedirectUrl(String url) on the wrapped response object.
    Specified by:
      `encodeRedirectUrl` in interface `HttpServletResponse`
    Overrides:
      `encodeRedirectUrl` in class `HttpServletResponseWrapper`
    Parameters:
      `url` - the url to be encoded.
    Returns:
      the encoded URL if encoding is needed; the unchanged URL otherwise.

  - ### encodeRedirectURL

    public String encodeRedirectURL(String url)
    Description copied from class: `javax.servlet.http.HttpServletResponseWrapper`
    The default behavior of this method is to return encodeRedirectURL(String url) on the wrapped response object.
    Specified by:
      `encodeRedirectURL` in interface `HttpServletResponse`
    Overrides:
      `encodeRedirectURL` in class `HttpServletResponseWrapper`
    Parameters:
      `url` - the url to be encoded.
    Returns:
      the encoded URL if encoding is needed; the unchanged URL otherwise.
    See Also:
      - `HttpServletResponse.sendRedirect(String)`
      - `HttpServletResponse.encodeUrl(String)`

  - ### encodeUrl

    @Deprecated public String encodeUrl(String url)
    Deprecated.
    Description copied from class: `javax.servlet.http.HttpServletResponseWrapper`
    The default behavior of this method is to call encodeUrl(String url) on the wrapped response object.
    Specified by:
      `encodeUrl` in interface `HttpServletResponse`
    Overrides:
      `encodeUrl` in class `HttpServletResponseWrapper`
    Parameters:
      `url` - the url to be encoded.
    Returns:
      the encoded URL if encoding is needed; the unchanged URL otherwise.

  - ### encodeURL

    public String encodeURL(String url)
    Description copied from class: `javax.servlet.http.HttpServletResponseWrapper`
    The default behavior of this method is to call encodeURL(String url) on the wrapped response object.
    Specified by:
      `encodeURL` in interface `HttpServletResponse`
    Overrides:
      `encodeURL` in class `HttpServletResponseWrapper`
    Parameters:
      `url` - the url to be encoded.
    Returns:
      the encoded URL if encoding is needed; the unchanged URL otherwise.

  - ### removeQueryParameters

    public static String removeQueryParameters(String url, String parameterName)
    Removes zero or more query parameters from a URL. All instances of the query parameter and any associated values will be removed.
    Parameters:
      `url` - The URL whose query parameters should be removed.
      `parameterName` - The name of the parameter to remove.
    Returns:
      The URL without any instances of the query parameter `parameterName` present.