Class HttpSessionHandshakeInterceptor

java.lang.Object
org.springframework.web.socket.server.support.HttpSessionHandshakeInterceptor
All Implemented Interfaces:
HandshakeInterceptor

public class HttpSessionHandshakeInterceptor extends Object implements HandshakeInterceptor
An interceptor to copy information from the HTTP session to the "handshake attributes" map to be made available via WebSocketSession.getAttributes().

Copies a subset or all HTTP session attributes and/or the HTTP session ID under the key HTTP_SESSION_ID_ATTR_NAME.

Since:
4.0
Author:
Rossen Stoyanchev
  • Field Details

  • Constructor Details

  • Method Details

    • getAttributeNames

      public Collection<String> getAttributeNames()
      Return the configured attribute names to copy (read-only).
    • setCopyAllAttributes

      public void setCopyAllAttributes(boolean copyAllAttributes)
      Whether to copy all attributes from the HTTP session. If set to "true", any explicitly configured attribute names are ignored.

      By default this is set to either "true" or "false" depending on which constructor was used (default or with attribute names respectively).

      Parameters:
      copyAllAttributes - whether to copy all attributes
    • isCopyAllAttributes

      public boolean isCopyAllAttributes()
      Whether to copy all HTTP session attributes.
    • setCopyHttpSessionId

      public void setCopyHttpSessionId(boolean copyHttpSessionId)
      Whether the HTTP session id should be copied to the handshake attributes under the key HTTP_SESSION_ID_ATTR_NAME.

      By default this is "true".

      Parameters:
      copyHttpSessionId - whether to copy the HTTP session id.
    • isCopyHttpSessionId

      public boolean isCopyHttpSessionId()
      Whether to copy the HTTP session id to the handshake attributes.
    • setCreateSession

      public void setCreateSession(boolean createSession)
      Whether to allow the HTTP session to be created while accessing it.

      By default set to false.

      See Also:
    • isCreateSession

      public boolean isCreateSession()
      Whether the HTTP session is allowed to be created.
    • beforeHandshake

      public boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, Map<String,Object> attributes) throws Exception
      Description copied from interface: HandshakeInterceptor
      Invoked before the handshake is processed.
      Specified by:
      beforeHandshake in interface HandshakeInterceptor
      Parameters:
      request - the current request
      response - the current response
      wsHandler - the target WebSocket handler
      attributes - the attributes from the HTTP handshake to associate with the WebSocket session; the provided attributes are copied, the original map is not used.
      Returns:
      whether to proceed with the handshake (true) or abort (false)
      Throws:
      Exception
    • afterHandshake

      public void afterHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, @Nullable Exception ex)
      Description copied from interface: HandshakeInterceptor
      Invoked after the handshake is done. The response status and headers indicate the results of the handshake, i.e. whether it was successful or not.
      Specified by:
      afterHandshake in interface HandshakeInterceptor
      Parameters:
      request - the current request
      response - the current response
      wsHandler - the target WebSocket handler
      ex - an exception raised during the handshake, or null if none