org.springframework.web.server.session

## Class HeaderWebSessionIdResolver

- java.lang.Object
- - org.springframework.web.server.session.HeaderWebSessionIdResolver

- All Implemented Interfaces:
    WebSessionIdResolver

      public class HeaderWebSessionIdResolver
      extends Object
      implements WebSessionIdResolver

  Request and response header-based `WebSessionIdResolver`.
  Since:
    5.0
  Author:
    Greg Turnquist, Rob Winch

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `DEFAULT_HEADER_NAME` Default value for `setHeaderName(String)`.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `HeaderWebSessionIdResolver()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `expireSession(ServerWebExchange exchange)` Instruct the client to end the current session.
    `String` | `getHeaderName()` Get the configured header name.
    `List<String>` | `resolveSessionIds(ServerWebExchange exchange)` Resolve the session IDs associated with the request.
    `void` | `setHeaderName(String headerName)` Set the name of the session header to use for the session ID.
    `void` | `setSessionId(ServerWebExchange exchange, String id)` Send the given session ID to the client.

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

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

- - ### Field Detail

    - #### DEFAULT_HEADER_NAME

          public static final String DEFAULT_HEADER_NAME

      Default value for `setHeaderName(String)`.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### HeaderWebSessionIdResolver

          public HeaderWebSessionIdResolver()

  - ### Method Detail

    - #### setHeaderName

          public void setHeaderName(String headerName)

      Set the name of the session header to use for the session ID.

      The name is used to extract the session ID from the request headers as well to set the session ID on the response headers.

      By default set to `DEFAULT_HEADER_NAME`

      Parameters:
        `headerName` - the header name

    - #### getHeaderName

          public String getHeaderName()

      Get the configured header name.
      Returns:
        the configured header name

    - #### resolveSessionIds

          public List<String> resolveSessionIds(ServerWebExchange exchange)

      Description copied from interface: `WebSessionIdResolver`
      Resolve the session IDs associated with the request.
      Specified by:
        `resolveSessionIds` in interface `WebSessionIdResolver`
      Parameters:
        `exchange` - the current exchange
      Returns:
        the session IDs or an empty list

    - #### setSessionId

          public void setSessionId(ServerWebExchange exchange,
                                   String id)

      Description copied from interface: `WebSessionIdResolver`
      Send the given session ID to the client.
      Specified by:
        `setSessionId` in interface `WebSessionIdResolver`
      Parameters:
        `exchange` - the current exchange
        `id` - the session ID

    - #### expireSession

          public void expireSession(ServerWebExchange exchange)

      Description copied from interface: `WebSessionIdResolver`
      Instruct the client to end the current session.
      Specified by:
        `expireSession` in interface `WebSessionIdResolver`
      Parameters:
        `exchange` - the current exchange