Top Description Fields Constructors Methods
org.eclipse.jetty.quic.client

public Class QuicClientConnectorConfigurator

extends Configurator
Class Inheritance
Imports
java.io.IOException, java.net.SocketAddress, java.nio.channels.DatagramChannel, .SelectableChannel, .SelectionKey, .SocketChannel, java.nio.file.Files, .Path, java.security.KeyStore, java.util.Map, .Objects, java.util.function.UnaryOperator, org.eclipse.jetty.io.ClientConnector, .Connection, .DatagramChannelEndPoint, .EndPoint, .ManagedSelector, .SocketChannelEndPoint, org.eclipse.jetty.quic.common.QuicConfiguration, org.eclipse.jetty.quic.quiche.PemExporter, org.eclipse.jetty.util.ssl.SslContextFactory, org.slf4j.Logger, .LoggerFactory

A QUIC specific ClientConnector.Configurator.

Since QUIC is based on UDP, this class creates DatagramChannels instead of SocketChannels, and DatagramChannelEndPoints instead of SocketChannelEndPoints.

See Also
QuicConfiguration

Field Summary

Modifier and TypeField and Description
pack-priv static final String
private Path
private final QuicConfiguration
private final UnaryOperator<Connection>
private static final Logger
pack-priv static final String
private Path
pack-priv static final String
private Path

Constructor Summary

AccessConstructor and Description
public
public

Method Summary

Modifier and TypeMethod and Description
private void
protected void
doStart()

Overrides org.eclipse.jetty.util.component.ContainerLifeCycle.doStart.

Starts the managed lifecycle beans in the order they were added.

protected void
doStop()

Overrides org.eclipse.jetty.util.component.ContainerLifeCycle.doStop.

Stops the managed lifecycle beans in the reverse order they were added.

public QuicConfiguration
public boolean
isIntrinsicallySecure(ClientConnector clientConnector, SocketAddress address)

Overrides org.eclipse.jetty.io.ClientConnector.Configurator.isIntrinsicallySecure.

Returns whether the connection to a given SocketAddress is intrinsically secure.

public ClientConnector.Configurator.ChannelWithAddress
newChannelWithAddress(ClientConnector clientConnector, SocketAddress address, Map<String, Object> context)

Overrides org.eclipse.jetty.io.ClientConnector.Configurator.newChannelWithAddress.

Creates a new SocketChannel to connect to a SocketAddress derived from the input socket address.

public Connection
public EndPoint

Field Detail

CERTIFICATE_CHAIN_PEM_PATH_KEYback to summary
pack-priv static final String CERTIFICATE_CHAIN_PEM_PATH_KEY
certificateChainPemPathback to summary
private Path certificateChainPemPath
configurationback to summary
private final QuicConfiguration configuration
configuratorback to summary
private final UnaryOperator<Connection> configurator
LOGback to summary
private static final Logger LOG

Hides org.eclipse.jetty.util.component.ContainerLifeCycle.LOG.

PRIVATE_KEY_PEM_PATH_KEYback to summary
pack-priv static final String PRIVATE_KEY_PEM_PATH_KEY
privateKeyPemPathback to summary
private Path privateKeyPemPath
TRUSTED_CERTIFICATES_PEM_PATH_KEYback to summary
pack-priv static final String TRUSTED_CERTIFICATES_PEM_PATH_KEY
trustedCertificatesPemPathback to summary
private Path trustedCertificatesPemPath

Constructor Detail

QuicClientConnectorConfiguratorback to summary
public QuicClientConnectorConfigurator()
QuicClientConnectorConfiguratorback to summary
public QuicClientConnectorConfigurator(UnaryOperator<Connection> configurator)

Method Detail

deleteFileback to summary
private void deleteFile(Path file)
doStartback to summary
protected void doStart() throws Exception

Overrides org.eclipse.jetty.util.component.ContainerLifeCycle.doStart.

Doc from org.eclipse.jetty.util.component.ContainerLifeCycle.doStart.

Starts the managed lifecycle beans in the order they were added.

Annotations
@Override
Exceptions
Exception:

Doc from org.eclipse.jetty.util.component.AbstractLifeCycle.doStart.

If there was a problem starting. Will cause a transition to FAILED state

doStopback to summary
protected void doStop() throws Exception

Overrides org.eclipse.jetty.util.component.ContainerLifeCycle.doStop.

Doc from org.eclipse.jetty.util.component.ContainerLifeCycle.doStop.

Stops the managed lifecycle beans in the reverse order they were added.

Annotations
@Override
Exceptions
Exception:

Doc from org.eclipse.jetty.util.component.AbstractLifeCycle.doStop.

If there was a problem stopping. Will cause a transition to FAILED state

getQuicConfigurationback to summary
public QuicConfiguration getQuicConfiguration()
isIntrinsicallySecureback to summary
public boolean isIntrinsicallySecure(ClientConnector clientConnector, SocketAddress address)

Overrides org.eclipse.jetty.io.ClientConnector.Configurator.isIntrinsicallySecure.

Doc from org.eclipse.jetty.io.ClientConnector.Configurator.isIntrinsicallySecure.

Returns whether the connection to a given SocketAddress is intrinsically secure.

A protocol such as HTTP/1.1 can be transported by TCP; however, TCP is not secure because it does not offer any encryption.

Encryption is provided by using TLS to wrap the HTTP/1.1 bytes, and then transporting the TLS bytes over TCP.

On the other hand, protocols such as QUIC are intrinsically secure, and therefore it is not necessary to wrap the HTTP/1.1 bytes with TLS: the HTTP/1.1 bytes are transported over QUIC in an intrinsically secure way.

Annotations
@Override
newChannelWithAddressback to summary
public ClientConnector.Configurator.ChannelWithAddress newChannelWithAddress(ClientConnector clientConnector, SocketAddress address, Map<String, Object> context) throws IOException

Overrides org.eclipse.jetty.io.ClientConnector.Configurator.newChannelWithAddress.

Doc from org.eclipse.jetty.io.ClientConnector.Configurator.newChannelWithAddress.

Creates a new SocketChannel to connect to a SocketAddress derived from the input socket address.

The input socket address represents the destination socket address to connect to, as it is typically specified by a URI authority, for example localhost:8080 if the URI is http://localhost:8080/path.

However, the returned socket address may be different as the implementation may use a Unix-Domain socket address to physically connect to the virtual destination socket address given as input.

The return type is a pair/record holding the socket channel and the socket address, with the socket channel not yet connected. The implementation of this methods must not call SocketChannel#connect(SocketAddress), as this is done later, after configuring the socket, by the ClientConnector implementation.

Annotations
@Override
Exceptions
IOException:
if the socket channel or the socket address cannot be created
newConnectionback to summary
public Connection newConnection(ClientConnector clientConnector, SocketAddress address, EndPoint endPoint, Map<String, Object> context)

Overrides org.eclipse.jetty.io.ClientConnector.Configurator.newConnection.

Annotations
@Override
newEndPointback to summary
public EndPoint newEndPoint(ClientConnector clientConnector, SocketAddress address, SelectableChannel selectable, ManagedSelector selector, SelectionKey selectionKey)

Overrides org.eclipse.jetty.io.ClientConnector.Configurator.newEndPoint.

Annotations
@Override