Package org.eclipse.jetty.server
Class OptionalSslConnectionFactory
- java.lang.Object
-
- org.eclipse.jetty.util.component.AbstractLifeCycle
-
- org.eclipse.jetty.util.component.ContainerLifeCycle
-
- org.eclipse.jetty.server.AbstractConnectionFactory
-
- org.eclipse.jetty.server.OptionalSslConnectionFactory
-
- All Implemented Interfaces:
ConnectionFactory
,org.eclipse.jetty.util.component.Container
,org.eclipse.jetty.util.component.Destroyable
,org.eclipse.jetty.util.component.Dumpable
,org.eclipse.jetty.util.component.LifeCycle
public class OptionalSslConnectionFactory extends AbstractConnectionFactory
A ConnectionFactory whose connections detect whether the first bytes are TLS bytes and upgrades to either a TLS connection or to another configurable connection.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
org.eclipse.jetty.util.component.AbstractLifeCycle.AbstractLifeCycleListener
-
Nested classes/interfaces inherited from interface org.eclipse.jetty.server.ConnectionFactory
ConnectionFactory.Upgrading
-
-
Constructor Summary
Constructors Constructor Description OptionalSslConnectionFactory(SslConnectionFactory sslConnectionFactory, java.lang.String otherProtocol)
Creates a new ConnectionFactory whose connections can upgrade to TLS or another protocol.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.eclipse.jetty.io.Connection
newConnection(Connector connector, org.eclipse.jetty.io.EndPoint endPoint)
Creates a newConnection
with the given parametersprotected void
otherProtocol(java.nio.ByteBuffer buffer, org.eclipse.jetty.io.EndPoint endPoint)
Callback method invoked whenotherProtocol
isnull
and the first bytes are not TLS.protected boolean
seemsTLS(java.nio.ByteBuffer buffer)
-
Methods inherited from class org.eclipse.jetty.server.AbstractConnectionFactory
configure, getFactories, getInputBufferSize, getProtocol, getProtocols, setInputBufferSize, toString
-
Methods inherited from class org.eclipse.jetty.util.component.ContainerLifeCycle
addBean, addBean, addBean, addEventListener, addManaged, contains, destroy, doStart, doStop, dump, dump, dump, dump, dump, dumpBeans, dumpObject, dumpObjects, dumpStdErr, dumpThis, getBean, getBeans, getBeans, getContainedBeans, getContainedBeans, isAuto, isManaged, isUnmanaged, manage, removeBean, removeBeans, removeEventListener, setBeans, setStopTimeout, start, stop, unmanage, updateBean, updateBean, updateBeans
-
Methods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
addLifeCycleListener, getState, getState, getStopTimeout, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, start, stop
-
-
-
-
Constructor Detail
-
OptionalSslConnectionFactory
public OptionalSslConnectionFactory(SslConnectionFactory sslConnectionFactory, java.lang.String otherProtocol)
Creates a new ConnectionFactory whose connections can upgrade to TLS or another protocol.
If
otherProtocol
isnull
, and the first bytes are not TLS, thenotherProtocol(ByteBuffer, EndPoint)
is called.- Parameters:
sslConnectionFactory
- The SslConnectionFactory to use if the first bytes are TLSotherProtocol
- the protocol of the ConnectionFactory to use if the first bytes are not TLS, or null to explicitly handle the non-TLS case
-
-
Method Detail
-
newConnection
public org.eclipse.jetty.io.Connection newConnection(Connector connector, org.eclipse.jetty.io.EndPoint endPoint)
Description copied from interface:ConnectionFactory
Creates a new
Connection
with the given parameters- Parameters:
connector
- TheConnector
creating this connectionendPoint
- theEndPoint
associated with the connection- Returns:
- a new
Connection
-
seemsTLS
protected boolean seemsTLS(java.nio.ByteBuffer buffer)
- Parameters:
buffer
- The buffer with the first bytes of the connection- Returns:
- whether the bytes seem TLS bytes
-
otherProtocol
protected void otherProtocol(java.nio.ByteBuffer buffer, org.eclipse.jetty.io.EndPoint endPoint)
Callback method invoked when
otherProtocol
isnull
and the first bytes are not TLS.This typically happens when a client is trying to connect to a TLS port using the
http
scheme (and not thehttps
scheme).- Parameters:
buffer
- The buffer with the first bytes of the connectionendPoint
- The connection EndPoint object- See Also:
seemsTLS(ByteBuffer)
-
-