Package org.silverpeas.sso.kerberos.spnego

## Class SpnegoHttpServletResponse

- java.lang.Object
- - javax.servlet.ServletResponseWrapper
  - - javax.servlet.http.HttpServletResponseWrapper
    - - org.silverpeas.sso.kerberos.spnego.SpnegoHttpServletResponse

- All Implemented Interfaces:
    `javax.servlet.http.HttpServletResponse`, `javax.servlet.ServletResponse`

      public final class SpnegoHttpServletResponse
      extends javax.servlet.http.HttpServletResponseWrapper

  Class adds capability to track/determine if the HTTP Status code has been set.

  Also allows the ability to set the content length to zero and flush the buffer immediately after setting the HTTP Status code.

  Author:
    Darwin V. Felix

- - ### Field Summary

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

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `isStatusSet()` | Tells if setStatus has been called.
    `void` | `setStatus​(int status)` |
    `void` | `setStatus​(int status, boolean immediate)` | Sets the HTTP Status Code and optionally set the the content length to zero and flush the buffer.

    - ### Methods inherited from class javax.servlet.http.HttpServletResponseWrapper

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

    - ### Methods inherited from class javax.servlet.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 java.lang.Object

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

    - ### Methods inherited from interface javax.servlet.ServletResponse

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

- - ### Constructor Detail

    - #### SpnegoHttpServletResponse

          public SpnegoHttpServletResponse​(javax.servlet.http.HttpServletResponse response)

  - ### Method Detail

    - #### isStatusSet

          public boolean isStatusSet()

      Tells if setStatus has been called.
      Returns:
        true if HTTP Status code has been set

    - #### setStatus

          public void setStatus​(int status)

      Specified by:
        `setStatus` in interface `javax.servlet.http.HttpServletResponse`
      Overrides:
        `setStatus` in class `javax.servlet.http.HttpServletResponseWrapper`

    - #### setStatus

          public void setStatus​(int status,
                                boolean immediate)
                         throws IOException

      Sets the HTTP Status Code and optionally set the the content length to zero and flush the buffer.
      Parameters:
        `status` - http status code
        `immediate` - set to true to set content len to zero and flush
      Throws:
        `IOException` - if an IO error occurs
      See Also:
        `setStatus(int)`