org.springframework.web.socket.server.support

Class HttpSessionHandshakeInterceptor

  • java.lang.Object
    • org.springframework.web.socket.server.support.HttpSessionHandshakeInterceptor
    • Field Detail

      • HTTP_SESSION_ID_ATTR_NAME

        public static final java.lang.String HTTP_SESSION_ID_ATTR_NAME
        The name of the attribute under which the HTTP session id is exposed when copyHttpSessionId is "true".
        See Also:
        Constant Field Values
    • Method Detail

      • getAttributeNames

        public java.util.Collection<java.lang.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:
        HttpServletRequest.getSession(boolean)
      • isCreateSession

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

        public boolean beforeHandshake(ServerHttpRequest request,
                                       ServerHttpResponse response,
                                       WebSocketHandler wsHandler,
                                       java.util.Map<java.lang.String,java.lang.Object> attributes)
                                throws java.lang.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 - 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:
        java.lang.Exception
      • afterHandshake

        public void afterHandshake(ServerHttpRequest request,
                                   ServerHttpResponse response,
                                   WebSocketHandler wsHandler,
                                   @Nullable
                                   java.lang.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