Class QuicClientConnectorConfigurator
A QUIC specific ClientConnector.Configurator
.
Since QUIC is based on UDP, this class creates DatagramChannel
s instead of
SocketChannel
s, and DatagramChannelEndPoint
s instead of
SocketChannelEndPoint
s.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.eclipse.jetty.io.ClientConnector.Configurator
ClientConnector.Configurator.ChannelWithAddress
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionboolean
isIntrinsicallySecure
(ClientConnector clientConnector, SocketAddress address) Returns whether the connection to a givenSocketAddress
is intrinsically secure.newChannelWithAddress
(ClientConnector clientConnector, SocketAddress address, Map<String, Object> context) Creates a newSocketChannel
to connect to aSocketAddress
derived from the input socket address.newConnection
(ClientConnector clientConnector, SocketAddress address, EndPoint endPoint, Map<String, Object> context) newEndPoint
(ClientConnector clientConnector, SocketAddress address, SelectableChannel selectable, ManagedSelector selector, SelectionKey selectionKey)
-
Constructor Details
-
QuicClientConnectorConfigurator
public QuicClientConnectorConfigurator() -
QuicClientConnectorConfigurator
-
-
Method Details
-
getQuicConfiguration
-
isIntrinsicallySecure
Description copied from class:ClientConnector.Configurator
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.
- Overrides:
isIntrinsicallySecure
in classClientConnector.Configurator
- Parameters:
clientConnector
- the ClientConnectoraddress
- the SocketAddress to connect to- Returns:
- whether the connection to the given SocketAddress is intrinsically secure
-
newChannelWithAddress
public ClientConnector.Configurator.ChannelWithAddress newChannelWithAddress(ClientConnector clientConnector, SocketAddress address, Map<String, Object> context) throws IOExceptionDescription copied from class:ClientConnector.Configurator
Creates a new
SocketChannel
to connect to aSocketAddress
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 ishttp://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 theClientConnector
implementation.- Overrides:
newChannelWithAddress
in classClientConnector.Configurator
- Parameters:
clientConnector
- the client connector requesting channel with associated addressaddress
- the destination socket address, typically specified in a URIcontext
- the context to create the new socket channel- Returns:
- a new
SocketChannel
with an associatedSocketAddress
to connect to - Throws:
IOException
- if the socket channel or the socket address cannot be created
-
newEndPoint
public EndPoint newEndPoint(ClientConnector clientConnector, SocketAddress address, SelectableChannel selectable, ManagedSelector selector, SelectionKey selectionKey) - Overrides:
newEndPoint
in classClientConnector.Configurator
-
newConnection
public Connection newConnection(ClientConnector clientConnector, SocketAddress address, EndPoint endPoint, Map<String, Object> context) - Overrides:
newConnection
in classClientConnector.Configurator
-