Package org.springframework.security.web.util

# Class OnCommittedResponseWrapper

java.lang.Object
jakarta.servlet.ServletResponseWrapper
jakarta.servlet.http.HttpServletResponseWrapper
org.springframework.security.web.util.OnCommittedResponseWrapper

All Implemented Interfaces:
  `jakarta.servlet.http.HttpServletResponse`, `jakarta.servlet.ServletResponse`

Direct Known Subclasses:
  `SaveContextOnUpdateOrErrorResponseWrapper`

public abstract class OnCommittedResponseWrapper extends jakarta.servlet.http.HttpServletResponseWrapper
Base class for response wrappers which encapsulate the logic for handling an event when the `HttpServletResponse` is committed.

Since:
  4.0.2

## Field Summary

### Fields inherited from interface jakarta.servlet.http.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
`OnCommittedResponseWrapper(jakarta.servlet.http.HttpServletResponse response)`

## Method Summary

Modifier and Type
Method
Description
`void`
`addHeader(String name, String value)`
`protected void`
`disableOnResponseCommitted()`
Invoke this method to disable invoking `onResponseCommitted()` when the `HttpServletResponse` is committed.
`void`
`flushBuffer()`
Makes sure `onResponseCommitted()` is invoked before calling the superclass `flushBuffer()`
`jakarta.servlet.ServletOutputStream`
`getOutputStream()`
Makes sure `onResponseCommitted()` is invoked before calling the calling `getOutputStream().close()` or `getOutputStream().flush()`
`PrintWriter`
`getWriter()`
Makes sure `onResponseCommitted()` is invoked before calling the `getWriter().close()` or `getWriter().flush()`
`protected boolean`
`isDisableOnResponseCommitted()`
Returns true if `onResponseCommitted()` will be invoked when the response is committed, else false.
`protected abstract void`
`onResponseCommitted()`
Implement the logic for handling the `HttpServletResponse` being committed
`final void`
`sendError(int sc)`
Makes sure `onResponseCommitted()` is invoked before calling the superclass `sendError()`
`final void`
`sendError(int sc, String msg)`
Makes sure `onResponseCommitted()` is invoked before calling the superclass `sendError()`
`final void`
`sendRedirect(String location)`
Makes sure `onResponseCommitted()` is invoked before calling the superclass `sendRedirect()`
`void`
`setContentLength(int len)`
`void`
`setContentLengthLong(long len)`

### Methods inherited from class jakarta.servlet.http.HttpServletResponseWrapper

`addCookie, addDateHeader, addIntHeader, containsHeader, encodeRedirectURL, encodeURL, getHeader, getHeaderNames, getHeaders, getStatus, getTrailerFields, setDateHeader, setHeader, setIntHeader, setStatus, setTrailerFields`

### Methods inherited from class jakarta.servlet.ServletResponseWrapper

`getBufferSize, getCharacterEncoding, getContentType, getLocale, getResponse, isCommitted, isWrapperFor, isWrapperFor, reset, resetBuffer, setBufferSize, setCharacterEncoding, setContentType, setLocale, setResponse`

### Methods inherited from class java.lang.Object

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

### Methods inherited from interface jakarta.servlet.ServletResponse

`getBufferSize, getCharacterEncoding, getContentType, getLocale, isCommitted, reset, resetBuffer, setBufferSize, setCharacterEncoding, setContentType, setLocale`

## Constructor Details

### OnCommittedResponseWrapper

public OnCommittedResponseWrapper(jakarta.servlet.http.HttpServletResponse response)

Parameters:
  `response` - the response to be wrapped

## Method Details

### addHeader

public void addHeader(String name, String value)

Specified by:
  `addHeader` in interface `jakarta.servlet.http.HttpServletResponse`
Overrides:
  `addHeader` in class `jakarta.servlet.http.HttpServletResponseWrapper`

### setContentLength

public void setContentLength(int len)

Specified by:
  `setContentLength` in interface `jakarta.servlet.ServletResponse`
Overrides:
  `setContentLength` in class `jakarta.servlet.ServletResponseWrapper`

### setContentLengthLong

public void setContentLengthLong(long len)

Specified by:
  `setContentLengthLong` in interface `jakarta.servlet.ServletResponse`
Overrides:
  `setContentLengthLong` in class `jakarta.servlet.ServletResponseWrapper`

### disableOnResponseCommitted

protected void disableOnResponseCommitted()
Invoke this method to disable invoking `onResponseCommitted()` when the `HttpServletResponse` is committed. This can be useful in the event that Async Web Requests are made.

### isDisableOnResponseCommitted

protected boolean isDisableOnResponseCommitted()
Returns true if `onResponseCommitted()` will be invoked when the response is committed, else false.

Returns:
  if `onResponseCommitted()` is enabled

### onResponseCommitted

protected abstract void onResponseCommitted()
Implement the logic for handling the `HttpServletResponse` being committed

### sendError

public final void sendError(int sc) throws IOException
Makes sure `onResponseCommitted()` is invoked before calling the superclass `sendError()`

Specified by:
  `sendError` in interface `jakarta.servlet.http.HttpServletResponse`
Overrides:
  `sendError` in class `jakarta.servlet.http.HttpServletResponseWrapper`
Throws:
  `IOException`

### sendError

public final void sendError(int sc, String msg) throws IOException
Makes sure `onResponseCommitted()` is invoked before calling the superclass `sendError()`

Specified by:
  `sendError` in interface `jakarta.servlet.http.HttpServletResponse`
Overrides:
  `sendError` in class `jakarta.servlet.http.HttpServletResponseWrapper`
Throws:
  `IOException`

### sendRedirect

public final void sendRedirect(String location) throws IOException
Makes sure `onResponseCommitted()` is invoked before calling the superclass `sendRedirect()`

Specified by:
  `sendRedirect` in interface `jakarta.servlet.http.HttpServletResponse`
Overrides:
  `sendRedirect` in class `jakarta.servlet.http.HttpServletResponseWrapper`
Throws:
  `IOException`

### getOutputStream

public jakarta.servlet.ServletOutputStream getOutputStream() throws IOException
Makes sure `onResponseCommitted()` is invoked before calling the calling `getOutputStream().close()` or `getOutputStream().flush()`

Specified by:
  `getOutputStream` in interface `jakarta.servlet.ServletResponse`
Overrides:
  `getOutputStream` in class `jakarta.servlet.ServletResponseWrapper`
Throws:
  `IOException`

### getWriter

public PrintWriter getWriter() throws IOException
Makes sure `onResponseCommitted()` is invoked before calling the `getWriter().close()` or `getWriter().flush()`

Specified by:
  `getWriter` in interface `jakarta.servlet.ServletResponse`
Overrides:
  `getWriter` in class `jakarta.servlet.ServletResponseWrapper`
Throws:
  `IOException`

### flushBuffer

public void flushBuffer() throws IOException
Makes sure `onResponseCommitted()` is invoked before calling the superclass `flushBuffer()`

Specified by:
  `flushBuffer` in interface `jakarta.servlet.ServletResponse`
Overrides:
  `flushBuffer` in class `jakarta.servlet.ServletResponseWrapper`
Throws:
  `IOException`