Top Description Inners Fields Constructors Methods
io.netty5.handler.ssl

public final Class ApplicationProtocolConfig

extends Object
Class Inheritance
Imports
javax.net.ssl.SSLEngine, java.util.Collections, .List

Provides an SSLEngine agnostic way to configure a ApplicationProtocolNegotiator.

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static enum
ApplicationProtocolConfig.Protocol

Defines which application level protocol negotiation to use.

public static enum
ApplicationProtocolConfig.SelectedListenerFailureBehavior

Defines the most common behaviors for the peer which is notified of the selected protocol.

public static enum
ApplicationProtocolConfig.SelectorFailureBehavior

Defines the most common behaviors for the peer that selects the application protocol.

Field Summary

Modifier and TypeField and Description
public static final ApplicationProtocolConfig
DISABLED

The configuration that disables application protocol negotiation.

private final ApplicationProtocolConfig.Protocol
private final ApplicationProtocolConfig.SelectedListenerFailureBehavior
private final ApplicationProtocolConfig.SelectorFailureBehavior
private final List<String>

Constructor Summary

AccessConstructor and Description
public
ApplicationProtocolConfig(ApplicationProtocolConfig.Protocol
The application protocol functionality to use.
protocol
,
ApplicationProtocolConfig.SelectorFailureBehavior
How the peer selecting the protocol should behave.
selectorBehavior
,
ApplicationProtocolConfig.SelectedListenerFailureBehavior
How the peer being notified of the selected protocol should behave.
selectedBehavior
,
Iterable<String>
The order of iteration determines the preference of support for protocols.
supportedProtocols
)

Create a new instance.

public
ApplicationProtocolConfig(ApplicationProtocolConfig.Protocol
The application protocol functionality to use.
protocol
,
ApplicationProtocolConfig.SelectorFailureBehavior
How the peer selecting the protocol should behave.
selectorBehavior
,
ApplicationProtocolConfig.SelectedListenerFailureBehavior
How the peer being notified of the selected protocol should behave.
selectedBehavior
,
String...
The order of iteration determines the preference of support for protocols.
supportedProtocols
)

Create a new instance.

private
ApplicationProtocolConfig(ApplicationProtocolConfig.Protocol
The application protocol functionality to use.
protocol
,
ApplicationProtocolConfig.SelectorFailureBehavior
How the peer selecting the protocol should behave.
selectorBehavior
,
ApplicationProtocolConfig.SelectedListenerFailureBehavior
How the peer being notified of the selected protocol should behave.
selectedBehavior
,
List<String>
The order of iteration determines the preference of support for protocols.
supportedProtocols
)

Create a new instance.

private
ApplicationProtocolConfig()

A special constructor that is used to instantiate DISABLED.

Method Summary

Modifier and TypeMethod and Description
public ApplicationProtocolConfig.Protocol
protocol()

Get which application level protocol negotiation to use.

public ApplicationProtocolConfig.SelectedListenerFailureBehavior
selectedListenerFailureBehavior()

Get the desired behavior for the peer who is notified of the selected protocol.

public ApplicationProtocolConfig.SelectorFailureBehavior
selectorFailureBehavior()

Get the desired behavior for the peer who selects the application protocol.

public List<String>
supportedProtocols()

The application level protocols supported.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

DISABLEDback to summary
public static final ApplicationProtocolConfig DISABLED

The configuration that disables application protocol negotiation.

protocolback to summary
private final ApplicationProtocolConfig.Protocol protocol
selectedBehaviorback to summary
private final ApplicationProtocolConfig.SelectedListenerFailureBehavior selectedBehavior
selectorBehaviorback to summary
private final ApplicationProtocolConfig.SelectorFailureBehavior selectorBehavior
supportedProtocolsback to summary
private final List<String> supportedProtocols

Constructor Detail

ApplicationProtocolConfigback to summary
public ApplicationProtocolConfig(ApplicationProtocolConfig.Protocol protocol, ApplicationProtocolConfig.SelectorFailureBehavior selectorBehavior, ApplicationProtocolConfig.SelectedListenerFailureBehavior selectedBehavior, Iterable<String> supportedProtocols)

Create a new instance.

Parameters
protocol:ApplicationProtocolConfig.Protocol

The application protocol functionality to use.

selectorBehavior:ApplicationProtocolConfig.SelectorFailureBehavior

How the peer selecting the protocol should behave.

selectedBehavior:ApplicationProtocolConfig.SelectedListenerFailureBehavior

How the peer being notified of the selected protocol should behave.

supportedProtocols:Iterable<String>

The order of iteration determines the preference of support for protocols.

ApplicationProtocolConfigback to summary
public ApplicationProtocolConfig(ApplicationProtocolConfig.Protocol protocol, ApplicationProtocolConfig.SelectorFailureBehavior selectorBehavior, ApplicationProtocolConfig.SelectedListenerFailureBehavior selectedBehavior, String... supportedProtocols)

Create a new instance.

Parameters
protocol:ApplicationProtocolConfig.Protocol

The application protocol functionality to use.

selectorBehavior:ApplicationProtocolConfig.SelectorFailureBehavior

How the peer selecting the protocol should behave.

selectedBehavior:ApplicationProtocolConfig.SelectedListenerFailureBehavior

How the peer being notified of the selected protocol should behave.

supportedProtocols:String[]

The order of iteration determines the preference of support for protocols.

ApplicationProtocolConfigback to summary
private ApplicationProtocolConfig(ApplicationProtocolConfig.Protocol protocol, ApplicationProtocolConfig.SelectorFailureBehavior selectorBehavior, ApplicationProtocolConfig.SelectedListenerFailureBehavior selectedBehavior, List<String> supportedProtocols)

Create a new instance.

Parameters
protocol:ApplicationProtocolConfig.Protocol

The application protocol functionality to use.

selectorBehavior:ApplicationProtocolConfig.SelectorFailureBehavior

How the peer selecting the protocol should behave.

selectedBehavior:ApplicationProtocolConfig.SelectedListenerFailureBehavior

How the peer being notified of the selected protocol should behave.

supportedProtocols:List<String>

The order of iteration determines the preference of support for protocols.

ApplicationProtocolConfigback to summary
private ApplicationProtocolConfig()

A special constructor that is used to instantiate DISABLED.

Method Detail

protocolback to summary
public ApplicationProtocolConfig.Protocol protocol()

Get which application level protocol negotiation to use.

selectedListenerFailureBehaviorback to summary
public ApplicationProtocolConfig.SelectedListenerFailureBehavior selectedListenerFailureBehavior()

Get the desired behavior for the peer who is notified of the selected protocol.

selectorFailureBehaviorback to summary
public ApplicationProtocolConfig.SelectorFailureBehavior selectorFailureBehavior()

Get the desired behavior for the peer who selects the application protocol.

supportedProtocolsback to summary
public List<String> supportedProtocols()

The application level protocols supported.

io.netty5.handler.ssl back to summary

public final Enum ApplicationProtocolConfig.Protocol

extends Enum<ApplicationProtocolConfig.Protocol>
Class Inheritance

Defines which application level protocol negotiation to use.

Field Summary

Modifier and TypeField and Description
public static final ApplicationProtocolConfig.Protocol
public static final ApplicationProtocolConfig.Protocol
public static final ApplicationProtocolConfig.Protocol
public static final ApplicationProtocolConfig.Protocol

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public static ApplicationProtocolConfig.Protocol
public static ApplicationProtocolConfig.Protocol[]
Inherited from java.lang.Enum:
clonecompareTodescribeConstableequalsfinalizegetDeclaringClasshashCodenameordinaltoStringvalueOf

Field Detail

ALPNback to summary
public static final ApplicationProtocolConfig.Protocol ALPN
NONEback to summary
public static final ApplicationProtocolConfig.Protocol NONE
NPNback to summary
public static final ApplicationProtocolConfig.Protocol NPN
NPN_AND_ALPNback to summary
public static final ApplicationProtocolConfig.Protocol NPN_AND_ALPN

Constructor Detail

Protocolback to summary
private Protocol()

Method Detail

valueOfback to summary
public static ApplicationProtocolConfig.Protocol valueOf(String name)
valuesback to summary
public static ApplicationProtocolConfig.Protocol[] values()
io.netty5.handler.ssl back to summary

public final Enum ApplicationProtocolConfig.SelectedListenerFailureBehavior

extends Enum<ApplicationProtocolConfig.SelectedListenerFailureBehavior>
Class Inheritance

Defines the most common behaviors for the peer which is notified of the selected protocol.

Field Summary

Modifier and TypeField and Description
public static final ApplicationProtocolConfig.SelectedListenerFailureBehavior
ACCEPT

If the peer who is notified what protocol was selected determines the selection was not matched, or the peer didn't advertise support for the TLS extension then the handshake will continue and the application protocol is assumed to be accepted.

public static final ApplicationProtocolConfig.SelectedListenerFailureBehavior
CHOOSE_MY_LAST_PROTOCOL

If the peer who is notified what protocol was selected determines the selection was not matched, or the peer didn't advertise support for the TLS extension then the handshake will continue assuming the last protocol supported by this peer is used.

public static final ApplicationProtocolConfig.SelectedListenerFailureBehavior
FATAL_ALERT

If the peer who is notified what protocol was selected determines the selection was not matched, or the peer didn't advertise support for the TLS extension then the handshake will be failed with a fatal alert.

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public static ApplicationProtocolConfig.SelectedListenerFailureBehavior
public static ApplicationProtocolConfig.SelectedListenerFailureBehavior[]
Inherited from java.lang.Enum:
clonecompareTodescribeConstableequalsfinalizegetDeclaringClasshashCodenameordinaltoStringvalueOf

Field Detail

ACCEPTback to summary
public static final ApplicationProtocolConfig.SelectedListenerFailureBehavior ACCEPT

If the peer who is notified what protocol was selected determines the selection was not matched, or the peer didn't advertise support for the TLS extension then the handshake will continue and the application protocol is assumed to be accepted.

CHOOSE_MY_LAST_PROTOCOLback to summary
public static final ApplicationProtocolConfig.SelectedListenerFailureBehavior CHOOSE_MY_LAST_PROTOCOL

If the peer who is notified what protocol was selected determines the selection was not matched, or the peer didn't advertise support for the TLS extension then the handshake will continue assuming the last protocol supported by this peer is used. This is used in cases where a "best effort" is desired to talk even if there is no matching protocol, and the assumption is the "most general" fallback protocol is typically listed last.

FATAL_ALERTback to summary
public static final ApplicationProtocolConfig.SelectedListenerFailureBehavior FATAL_ALERT

If the peer who is notified what protocol was selected determines the selection was not matched, or the peer didn't advertise support for the TLS extension then the handshake will be failed with a fatal alert.

Constructor Detail

SelectedListenerFailureBehaviorback to summary
private SelectedListenerFailureBehavior()

Method Detail

valueOfback to summary
public static ApplicationProtocolConfig.SelectedListenerFailureBehavior valueOf(String name)
valuesback to summary
public static ApplicationProtocolConfig.SelectedListenerFailureBehavior[] values()
io.netty5.handler.ssl back to summary

public final Enum ApplicationProtocolConfig.SelectorFailureBehavior

extends Enum<ApplicationProtocolConfig.SelectorFailureBehavior>
Class Inheritance

Defines the most common behaviors for the peer that selects the application protocol.

Field Summary

Modifier and TypeField and Description
public static final ApplicationProtocolConfig.SelectorFailureBehavior
CHOOSE_MY_LAST_PROTOCOL

If the peer who selects the application protocol doesn't find a match it will just select the last protocol it advertised support for.

public static final ApplicationProtocolConfig.SelectorFailureBehavior
FATAL_ALERT

If the peer who selects the application protocol doesn't find a match this will result in the failing the handshake with a fatal alert.

public static final ApplicationProtocolConfig.SelectorFailureBehavior
NO_ADVERTISE

If the peer who selects the application protocol doesn't find a match it will pretend no to support the TLS extension by not advertising support for the TLS extension in the handshake.

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public static ApplicationProtocolConfig.SelectorFailureBehavior
public static ApplicationProtocolConfig.SelectorFailureBehavior[]
Inherited from java.lang.Enum:
clonecompareTodescribeConstableequalsfinalizegetDeclaringClasshashCodenameordinaltoStringvalueOf

Field Detail

CHOOSE_MY_LAST_PROTOCOLback to summary
public static final ApplicationProtocolConfig.SelectorFailureBehavior CHOOSE_MY_LAST_PROTOCOL

If the peer who selects the application protocol doesn't find a match it will just select the last protocol it advertised support for. This is used in cases where a "best effort" is desired to talk even if there is no matching protocol, and the assumption is the "most general" fallback protocol is typically listed last.

This may be illegal for some RFCs but was observed behavior by some SSL implementations, and is supported for flexibility/compatibility.

FATAL_ALERTback to summary
public static final ApplicationProtocolConfig.SelectorFailureBehavior FATAL_ALERT

If the peer who selects the application protocol doesn't find a match this will result in the failing the handshake with a fatal alert.

For example in the case of ALPN this will result in a no_application_protocol(120) alert.

NO_ADVERTISEback to summary
public static final ApplicationProtocolConfig.SelectorFailureBehavior NO_ADVERTISE

If the peer who selects the application protocol doesn't find a match it will pretend no to support the TLS extension by not advertising support for the TLS extension in the handshake. This is used in cases where a "best effort" is desired to talk even if there is no matching protocol.

Constructor Detail

SelectorFailureBehaviorback to summary
private SelectorFailureBehavior()

Method Detail

valueOfback to summary
public static ApplicationProtocolConfig.SelectorFailureBehavior valueOf(String name)
valuesback to summary
public static ApplicationProtocolConfig.SelectorFailureBehavior[] values()