# Class DefaultServerEndpointConfigurator

java.lang.Object
jakarta.websocket.server.ServerEndpointConfig.Configurator
org.apache.tomcat.websocket.server.DefaultServerEndpointConfigurator

public class DefaultServerEndpointConfigurator extends ServerEndpointConfig.Configurator
Default implementation of `ServerEndpointConfig.Configurator` for WebSocket server endpoints.

## Constructor Summary

Constructors
Constructor
Description
`DefaultServerEndpointConfigurator()`
Default constructor.

## Method Summary

Modifier and Type
Method
Description
`boolean`
`checkOrigin(String originHeaderValue)`
Checks whether the given Origin header value is acceptable.
`<T> T`
`getEndpointInstance(Class<T> clazz)`
Creates a new instance of the endpoint class.
`List<Extension>`
`getNegotiatedExtensions(List<Extension> installed, List<Extension> requested)`
Determines the extensions to use for the WebSocket connection by comparing the installed and requested extensions.
`String`
`getNegotiatedSubprotocol(List<String> supported, List<String> requested)`
Determines the sub-protocol to use for the WebSocket connection by comparing the supported and requested sub-protocols.
`void`
`modifyHandshake(ServerEndpointConfig sec, HandshakeRequest request, HandshakeResponse response)`
Provides the opportunity to modify the handshake before it is completed.

### Methods inherited from class ServerEndpointConfig.Configurator

`getContainerDefaultConfigurator`

### Methods inherited from class Object

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

## Constructor Details

### DefaultServerEndpointConfigurator

public DefaultServerEndpointConfigurator()
Default constructor.

## Method Details

### getEndpointInstance

public <T> T getEndpointInstance(Class<T> clazz) throws InstantiationException
Description copied from class: `jakarta.websocket.server.ServerEndpointConfig.Configurator`
Creates a new instance of the endpoint class.

Overrides:
  `getEndpointInstance` in class `ServerEndpointConfig.Configurator`
Type Parameters:
  `T` - The type of the endpoint class
Parameters:
  `clazz` - The endpoint class
Returns:
  A new instance of the endpoint
Throws:
  `InstantiationException` - If the endpoint cannot be instantiated

### getNegotiatedSubprotocol

public String getNegotiatedSubprotocol(List<String> supported, List<String> requested)
Description copied from class: `jakarta.websocket.server.ServerEndpointConfig.Configurator`
Determines the sub-protocol to use for the WebSocket connection by comparing the supported and requested sub-protocols.

Overrides:
  `getNegotiatedSubprotocol` in class `ServerEndpointConfig.Configurator`
Parameters:
  `supported` - The list of sub-protocols supported by the endpoint
  `requested` - The list of sub-protocols requested by the client
Returns:
  The negotiated sub-protocol, or `null` if none matches

### getNegotiatedExtensions

public List<Extension> getNegotiatedExtensions(List<Extension> installed, List<Extension> requested)
Description copied from class: `jakarta.websocket.server.ServerEndpointConfig.Configurator`
Determines the extensions to use for the WebSocket connection by comparing the installed and requested extensions.

Overrides:
  `getNegotiatedExtensions` in class `ServerEndpointConfig.Configurator`
Parameters:
  `installed` - The list of extensions installed on the server
  `requested` - The list of extensions requested by the client
Returns:
  The list of negotiated extensions

### checkOrigin

public boolean checkOrigin(String originHeaderValue)
Description copied from class: `jakarta.websocket.server.ServerEndpointConfig.Configurator`
Checks whether the given Origin header value is acceptable. The default implementation always returns `true`.

Overrides:
  `checkOrigin` in class `ServerEndpointConfig.Configurator`
Parameters:
  `originHeaderValue` - The Origin header value to check
Returns:
  `true` if the origin is acceptable

### modifyHandshake

public void modifyHandshake(ServerEndpointConfig sec, HandshakeRequest request, HandshakeResponse response)
Description copied from class: `jakarta.websocket.server.ServerEndpointConfig.Configurator`
Provides the opportunity to modify the handshake before it is completed. This method is called after the sub-protocol and extensions have been negotiated.

Overrides:
  `modifyHandshake` in class `ServerEndpointConfig.Configurator`
Parameters:
  `sec` - The server endpoint configuration
  `request` - The handshake request
  `response` - The handshake response