# Class AbstractJsseEndpoint<S,U>

java.lang.Object
org.apache.tomcat.util.net.AbstractEndpoint<S,U>
org.apache.tomcat.util.net.AbstractJsseEndpoint<S,U>

Direct Known Subclasses:
  `Nio2Endpoint`, `NioEndpoint`

public abstract class AbstractJsseEndpoint<S,U> extends AbstractEndpoint<S,U>

## Nested Class Summary

### Nested classes/interfaces inherited from class org.apache.tomcat.util.net.AbstractEndpoint

`AbstractEndpoint.BindState, AbstractEndpoint.Handler<S>`

## Field Summary

### Fields inherited from class org.apache.tomcat.util.net.AbstractEndpoint

`acceptor, acceptorThreadPriority, attributes, connections, internalExecutor, negotiableProtocols, paused, processorCache, running, sm, socketProperties, sslHostConfigs, threadPriority`

## Constructor Summary

Constructors
Constructor
Description
`AbstractJsseEndpoint()`

## Method Summary

Modifier and Type
Method
Description
`protected void`
`createSSLContext(SSLHostConfig sslHostConfig)`
Create the SSLContext for the given SSLHostConfig.
`protected SSLEngine`
`createSSLEngine(String sniHostName, List<Cipher> clientRequestedCiphers, List<String> clientRequestedApplicationProtocols)`
`protected final InetSocketAddress`
`getLocalAddress()`
Obtain the network address the server socket is bound to.
`protected abstract NetworkChannel`
`getServerSocket()`
`int`
`getSniParseLimit()`
`SSLImplementation`
`getSslImplementation()`
`String`
`getSslImplementationName()`
`protected void`
`initialiseSsl()`
`void`
`setSniParseLimit(int sniParseLimit)`
`void`
`setSslImplementationName(String s)`
`void`
`unbind()`

### Methods inherited from class org.apache.tomcat.util.net.AbstractEndpoint

`addNegotiatedProtocol, addSslHostConfig, addSslHostConfig, awaitConnectionsClose, bind, closeServerSocketGraceful, closeSocket, countDownConnection, countUpOrAwaitConnection, createExecutor, createSocketProcessor, destroy, destroySocket, destroySsl, doCloseServerSocket, findSslHostConfigs, generateCertificateDebug, getAcceptCount, getAcceptorThreadPriority, getAddress, getAttribute, getBindOnInit, getBindState, getConnectionCount, getConnectionLinger, getConnections, getConnectionTimeout, getCurrentThreadCount, getCurrentThreadsBusy, getDaemon, getDefaultSSLHostConfigName, getDeferAccept, getDomain, getExecutor, getExecutorTerminationTimeoutMillis, getHandler, getId, getKeepAliveTimeout, getLocalPort, getLog, getLogCertificate, getMaxConnections, getMaxKeepAliveRequests, getMaxQueueSize, getMaxThreads, getMinSpareThreads, getName, getPort, getPortOffset, getPortWithOffset, getProperty, getSocketProperties, getSSLHostConfig, getTcpNoDelay, getThreadPriority, getThreadsMaxIdleTime, getUseAsyncIO, getUseSendfile, getUseVirtualThreads, getUtilityExecutor, hasNegotiableProtocols, init, initializeConnectionLatch, isPaused, isRunning, isSSLEnabled, logCertificate, pause, processSocket, releaseSSLContext, reloadSslHostConfig, reloadSslHostConfigs, removeSslHostConfig, resume, serverSocketAccept, setAcceptCount, setAcceptorThreadPriority, setAddress, setAttribute, setBindOnInit, setConnectionLinger, setConnectionTimeout, setDaemon, setDefaultSSLHostConfigName, setDomain, setExecutor, setExecutorTerminationTimeoutMillis, setHandler, setKeepAliveTimeout, setMaxConnections, setMaxKeepAliveRequests, setMaxQueueSize, setMaxThreads, setMinSpareThreads, setName, setPort, setPortOffset, setProperty, setSocketOptions, setSSLEnabled, setTcpNoDelay, setThreadPriority, setThreadsMaxIdleTime, setUseAsyncIO, setUseSendfile, setUseVirtualThreads, setUtilityExecutor, shutdownExecutor, start, startAcceptorThread, startInternal, stop, stopInternal, toTimeout, unlockAccept`

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

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

## Constructor Details

### AbstractJsseEndpoint

public AbstractJsseEndpoint()

## Method Details

### getSslImplementationName

public String getSslImplementationName()

### setSslImplementationName

public void setSslImplementationName(String s)

### getSslImplementation

public SSLImplementation getSslImplementation()

### getSniParseLimit

public int getSniParseLimit()

### setSniParseLimit

public void setSniParseLimit(int sniParseLimit)

### initialiseSsl

protected void initialiseSsl() throws Exception

Throws:
  `Exception`

### createSSLContext

protected void createSSLContext(SSLHostConfig sslHostConfig) throws IllegalArgumentException
Description copied from class: `AbstractEndpoint`
Create the SSLContext for the given SSLHostConfig.

Specified by:
  `createSSLContext` in class `AbstractEndpoint<S,U>`
Parameters:
  `sslHostConfig` - The SSLHostConfig for which the SSLContext should be created
Throws:
  `IllegalArgumentException`

### createSSLEngine

protected SSLEngine createSSLEngine(String sniHostName, List<Cipher> clientRequestedCiphers, List<String> clientRequestedApplicationProtocols)

### unbind

public void unbind() throws Exception

Specified by:
  `unbind` in class `AbstractEndpoint<S,U>`
Throws:
  `Exception`

### getServerSocket

protected abstract NetworkChannel getServerSocket()

### getLocalAddress

protected final InetSocketAddress getLocalAddress() throws IOException
Description copied from class: `AbstractEndpoint`
Obtain the network address the server socket is bound to. This primarily exists to enable the correct address to be used when unlocking the server socket since it removes the guess-work involved if no address is specifically set.

Specified by:
  `getLocalAddress` in class `AbstractEndpoint<S,U>`
Returns:
  The network address that the server socket is listening on or null if the server socket is not currently bound.
Throws:
  `IOException` - If there is a problem determining the currently bound socket