Package org.apache.tomcat.util.net

# 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, acceptorThreadCount, 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()`
  `boolean`
  `isAlpnSupported()`
  Identifies if the endpoint supports ALPN.
  `protected void`
  `setDefaultSslHostConfig(SSLHostConfig sslHostConfig)`
  `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, getAcceptorThreadCount, 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, getMaxThreads, getMinSpareThreads, getName, getPort, getPortOffset, getPortWithOffset, getProperty, getSocketProperties, getSSLHostConfig, getTcpNoDelay, getThreadPriority, getUseAsyncIO, getUseSendfile, getUseVirtualThreads, getUtilityExecutor, hasNegotiableProtocols, init, initializeConnectionLatch, isPaused, isRunning, isSSLEnabled, logCertificate, pause, processSocket, releaseSSLContext, reloadSslHostConfig, reloadSslHostConfigs, removeSslHostConfig, resume, serverSocketAccept, setAcceptCount, setAcceptorThreadCount, setAcceptorThreadPriority, setAddress, setAttribute, setBindOnInit, setConnectionLinger, setConnectionTimeout, setDaemon, setDefaultSSLHostConfigName, setDomain, setExecutor, setExecutorTerminationTimeoutMillis, setHandler, setKeepAliveTimeout, setMaxConnections, setMaxKeepAliveRequests, setMaxThreads, setMinSpareThreads, setName, setPort, setPortOffset, setProperty, setSocketOptions, setSSLEnabled, setTcpNoDelay, setThreadPriority, 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)

  - ### isAlpnSupported

    public boolean isAlpnSupported()
    Description copied from class: `AbstractEndpoint`
    Identifies if the endpoint supports ALPN. Note that a return value of `true` implies that `AbstractEndpoint.isSSLEnabled()` will also return `true`.
    Specified by:
      `isAlpnSupported` in class `AbstractEndpoint<S,U>`
    Returns:
      `true` if the endpoint supports ALPN in its current configuration, otherwise `false`.

  - ### 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

  - ### setDefaultSslHostConfig

    protected void setDefaultSslHostConfig(SSLHostConfig sslHostConfig)
    Specified by:
      `setDefaultSslHostConfig` in class `AbstractEndpoint<S,U>`