Class ServletUpgradeResponse

java.lang.Object
org.eclipse.jetty.websocket.servlet.ServletUpgradeResponse
All Implemented Interfaces:
UpgradeResponse
Direct Known Subclasses:
ServletWebSocketResponse

public class ServletUpgradeResponse extends Object implements UpgradeResponse
Servlet Specific UpgradeResponse implementation.
  • Field Details

    • response

      private javax.servlet.http.HttpServletResponse response
    • extensionsNegotiated

      private boolean extensionsNegotiated
    • subprotocolNegotiated

      private boolean subprotocolNegotiated
    • headers

      private Map<String,List<String>> headers
    • extensions

      private List<ExtensionConfig> extensions
    • success

      private boolean success
    • status

      private int status
  • Constructor Details

    • ServletUpgradeResponse

      public ServletUpgradeResponse(javax.servlet.http.HttpServletResponse response)
  • Method Details

    • addHeader

      public void addHeader(String name, String value)
      Description copied from interface: UpgradeResponse
      Add a header value to the response.
      Specified by:
      addHeader in interface UpgradeResponse
      Parameters:
      name - the header name
      value - the header value
    • setHeader

      public void setHeader(String name, String value)
      Description copied from interface: UpgradeResponse
      Set a header

      Overrides previous value of header (if set)

      Specified by:
      setHeader in interface UpgradeResponse
      Parameters:
      name - the header name
      value - the header value
    • complete

      public void complete()
    • getAcceptedSubProtocol

      public String getAcceptedSubProtocol()
      Description copied from interface: UpgradeResponse
      Get the accepted WebSocket protocol.
      Specified by:
      getAcceptedSubProtocol in interface UpgradeResponse
      Returns:
      the accepted WebSocket protocol.
    • getExtensions

      public List<ExtensionConfig> getExtensions()
      Description copied from interface: UpgradeResponse
      Get the list of extensions that should be used for the websocket.
      Specified by:
      getExtensions in interface UpgradeResponse
      Returns:
      the list of negotiated extensions to use.
    • getHeader

      public String getHeader(String name)
      Description copied from interface: UpgradeResponse
      Get a header value
      Specified by:
      getHeader in interface UpgradeResponse
      Parameters:
      name - the header name
      Returns:
      the value (null if header doesn't exist)
    • getHeaderNames

      public Set<String> getHeaderNames()
      Description copied from interface: UpgradeResponse
      Get the header names
      Specified by:
      getHeaderNames in interface UpgradeResponse
      Returns:
      the set of header names
    • getHeaders

      public Map<String,List<String>> getHeaders()
      Description copied from interface: UpgradeResponse
      Get the headers map
      Specified by:
      getHeaders in interface UpgradeResponse
      Returns:
      the map of headers
    • getHeaders

      public List<String> getHeaders(String name)
      Description copied from interface: UpgradeResponse
      Get the multi-value header value
      Specified by:
      getHeaders in interface UpgradeResponse
      Parameters:
      name - the header name
      Returns:
      the list of values (null if header doesn't exist)
    • getStatusCode

      public int getStatusCode()
      Description copied from interface: UpgradeResponse
      Get the HTTP Response Status Code
      Specified by:
      getStatusCode in interface UpgradeResponse
      Returns:
      the status code
    • getStatusReason

      public String getStatusReason()
      Description copied from interface: UpgradeResponse
      Get the HTTP Response Status Reason
      Specified by:
      getStatusReason in interface UpgradeResponse
      Returns:
      the HTTP Response status reason
    • isCommitted

      public boolean isCommitted()
    • isExtensionsNegotiated

      public boolean isExtensionsNegotiated()
    • isSubprotocolNegotiated

      public boolean isSubprotocolNegotiated()
    • isSuccess

      public boolean isSuccess()
      Description copied from interface: UpgradeResponse
      Test if upgrade response is successful.

      Merely notes if the response was sent as a WebSocket Upgrade, or was failed (resulting in no upgrade handshake)

      Specified by:
      isSuccess in interface UpgradeResponse
      Returns:
      true if upgrade response was generated, false if no upgrade response was generated
    • sendError

      public void sendError(int statusCode, String message) throws IOException
      Throws:
      IOException
    • sendForbidden

      public void sendForbidden(String message) throws IOException
      Description copied from interface: UpgradeResponse
      Issue a forbidden upgrade response.

      This means that the websocket endpoint was valid, but the conditions to use a WebSocket resulted in a forbidden access.

      Use this when the origin or authentication is invalid.

      Specified by:
      sendForbidden in interface UpgradeResponse
      Parameters:
      message - the short 1 line detail message about the forbidden response
      Throws:
      IOException - if unable to send the forbidden
    • setAcceptedSubProtocol

      public void setAcceptedSubProtocol(String protocol)
      Description copied from interface: UpgradeResponse
      Set the accepted WebSocket Protocol.
      Specified by:
      setAcceptedSubProtocol in interface UpgradeResponse
      Parameters:
      protocol - the protocol to list as accepted
    • setExtensions

      public void setExtensions(List<ExtensionConfig> configs)
      Description copied from interface: UpgradeResponse
      Set the list of extensions that are approved for use with this websocket.

      Notes:

      • Per the spec you cannot add extensions that have not been seen in the UpgradeRequest, just remove entries you don't want to use
      • If this is unused, or a null is passed, then the list negotiation will follow default behavior and use the complete list of extensions that are available in this WebSocket server implementation.
      Specified by:
      setExtensions in interface UpgradeResponse
      Parameters:
      configs - the list of extensions to use.
    • setStatusCode

      public void setStatusCode(int statusCode)
      Description copied from interface: UpgradeResponse
      Set the HTTP Response status code
      Specified by:
      setStatusCode in interface UpgradeResponse
      Parameters:
      statusCode - the status code
    • setStatusReason

      public void setStatusReason(String statusReason)
      Description copied from interface: UpgradeResponse
      Set the HTTP Response status reason phrase

      Note, not all implementation of UpgradeResponse can support this feature

      Specified by:
      setStatusReason in interface UpgradeResponse
      Parameters:
      statusReason - the status reason phrase
    • setSuccess

      public void setSuccess(boolean success)
      Description copied from interface: UpgradeResponse
      Set the success of the upgrade response.

      Specified by:
      setSuccess in interface UpgradeResponse
      Parameters:
      success - true to indicate a response to the upgrade handshake was sent, false to indicate no upgrade response was sent
    • toString

      public String toString()
      Overrides:
      toString in class Object