Class HTTP2CServerConnectionFactory
- All Implemented Interfaces:
ConnectionFactory
,ConnectionFactory.Upgrading
,NegotiatingServerConnection.CipherDiscriminator
,Container
,Destroyable
,Dumpable
,Dumpable.DumpableContainer
,LifeCycle
This extension of HTTP2ServerConnection Factory sets the protocol name to "h2c" as used by the clear text upgrade mechanism for HTTP2 and marks all TLS ciphers as unacceptable.
If used in combination with a HttpConnectionFactory
as the
default protocol, this factory can support the non-standard direct
update mechanism, where an HTTP1 request of the form "PRI * HTTP/2.0"
is used to trigger a switch to an HTTP2 connection. This approach
allows a single port to accept either HTTP/1 or HTTP/2 direct
connections.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.eclipse.jetty.http2.server.HTTP2ServerConnectionFactory
HTTP2ServerConnectionFactory.HTTPServerSessionListener
Nested classes/interfaces inherited from class org.eclipse.jetty.http2.server.AbstractHTTP2ServerConnectionFactory
AbstractHTTP2ServerConnectionFactory.HTTP2SessionContainer
Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
AbstractLifeCycle.AbstractLifeCycleListener, AbstractLifeCycle.StopException
Nested classes/interfaces inherited from interface org.eclipse.jetty.server.ConnectionFactory
ConnectionFactory.Configuring, ConnectionFactory.Detecting, ConnectionFactory.Upgrading
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Container
Container.InheritedListener, Container.Listener
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Dumpable
Dumpable.DumpableContainer
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle
LifeCycle.Listener
-
Field Summary
-
Constructor Summary
ConstructorDescriptionHTTP2CServerConnectionFactory
(HttpConfiguration httpConfiguration) HTTP2CServerConnectionFactory
(HttpConfiguration httpConfiguration, String... protocols) -
Method Summary
Modifier and TypeMethodDescriptionboolean
isAcceptable
(String protocol, String tlsProtocol, String tlsCipher) upgradeConnection
(Connector connector, EndPoint endPoint, MetaData.Request request, HttpFields.Mutable response101) Create a connection for an upgrade request.Methods inherited from class org.eclipse.jetty.http2.server.HTTP2ServerConnectionFactory
newSessionListener
Methods inherited from class org.eclipse.jetty.http2.server.AbstractHTTP2ServerConnectionFactory
getFlowControlStrategyFactory, getHttpConfiguration, getInitialSessionRecvWindow, getInitialStreamRecvWindow, getMaxConcurrentStreams, getMaxDecoderTableCapacity, getMaxDynamicTableSize, getMaxEncoderTableCapacity, getMaxFrameLength, getMaxFrameSize, getMaxHeaderBlockFragment, getMaxSettingsKeys, getRateControlFactory, getStreamIdleTimeout, isConnectProtocolEnabled, isUseInputDirectByteBuffers, isUseOutputDirectByteBuffers, newConnection, newServerParser, newSettings, setConnectProtocolEnabled, setFlowControlStrategyFactory, setInitialSessionRecvWindow, setInitialStreamRecvWindow, setMaxConcurrentStreams, setMaxDecoderTableCapacity, setMaxDynamicTableSize, setMaxEncoderTableCapacity, setMaxFrameLength, setMaxFrameSize, setMaxHeaderBlockFragment, setMaxSettingsKeys, setRateControlFactory, setStreamIdleTimeout, setUseInputDirectByteBuffers, setUseOutputDirectByteBuffers
Methods inherited from class org.eclipse.jetty.server.AbstractConnectionFactory
configure, findNextProtocol, findNextProtocol, getFactories, getInputBufferSize, getProtocol, getProtocols, setInputBufferSize, toString
Methods inherited from class org.eclipse.jetty.util.component.ContainerLifeCycle
addBean, addBean, addEventListener, addManaged, contains, destroy, doStart, doStop, dump, dump, dump, dumpObjects, dumpStdErr, getBean, getBeans, getBeans, getContainedBeans, getContainedBeans, isAuto, isManaged, isUnmanaged, manage, removeBean, removeBeans, removeEventListener, setBeans, start, stop, unmanage, updateBean, updateBean, updateBeans, updateBeans
Methods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
getEventListeners, getState, getState, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, setEventListeners, start, stop
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.eclipse.jetty.server.ConnectionFactory
getProtocol, getProtocols, newConnection
Methods inherited from interface org.eclipse.jetty.util.component.Container
getCachedBeans, getEventListeners
Methods inherited from interface org.eclipse.jetty.util.component.Dumpable.DumpableContainer
isDumpable
-
Constructor Details
-
HTTP2CServerConnectionFactory
-
HTTP2CServerConnectionFactory
public HTTP2CServerConnectionFactory(@Name("config") HttpConfiguration httpConfiguration, @Name("protocols") String... protocols)
-
-
Method Details
-
isAcceptable
- Specified by:
isAcceptable
in interfaceNegotiatingServerConnection.CipherDiscriminator
- Overrides:
isAcceptable
in classHTTP2ServerConnectionFactory
-
upgradeConnection
public Connection upgradeConnection(Connector connector, EndPoint endPoint, MetaData.Request request, HttpFields.Mutable response101) throws BadMessageException Description copied from interface:ConnectionFactory.Upgrading
Create a connection for an upgrade request.This is a variation of
ConnectionFactory.newConnection(Connector, EndPoint)
that can create (and/or customise) a connection for an upgrade request. Implementations may callConnectionFactory.newConnection(Connector, EndPoint)
or may construct the connection instance themselves.- Specified by:
upgradeConnection
in interfaceConnectionFactory.Upgrading
- Parameters:
connector
- The connector to upgrade for.endPoint
- The endpoint of the connection.request
- The meta data of the upgrade request.response101
- The fields to be sent with the 101 response- Returns:
- Null to indicate that request processing should continue normally without upgrading. A new connection instance to indicate that the upgrade should proceed.
- Throws:
BadMessageException
- Thrown to indicate the upgrade attempt was illegal and that a bad message response should be sent.
-