SNIMatcher

  • SNIMatcher is an abstract class used to match Server Name Indication (SNI) information during SSL/TLS handshakes.

  • It helps servers determine if a connection should be accepted based on the client's desired server name.

  • SNIMatcher objects are immutable and provide methods to get the server name type and to perform the matching operation.

  • Servers can utilize SNIMatcher to support multiple virtual or name-based servers on a single network address.

public abstract class SNIMatcher extends Object

Instances of this class represent a matcher that performs match operations on an SNIServerName instance.

Servers can use Server Name Indication (SNI) information to decide if specific SSLSocket or SSLEngine instances should accept a connection. For example, when multiple "virtual" or "name-based" servers are hosted on a single underlying network address, the server application can use SNI information to determine whether this server is the exact server that the client wants to access. Instances of this class can be used by a server to verify the acceptable server names of a particular type, such as host names.

SNIMatcher objects are immutable. Subclasses should not provide methods that can change the state of an instance once it has been created.

Protected Constructor Summary

SNIMatcher(int type)
Creates an SNIMatcher using the specified server name type.

Public Method Summary

final int
getType()
Returns the server name type of this SNIMatcher object.
abstract boolean
matches(SNIServerName serverName)
Attempts to match the given SNIServerName.

Inherited Method Summary

Protected Constructors

protected SNIMatcher (int type)

Creates an SNIMatcher using the specified server name type.

Parameters
type the type of the server name that this matcher performs on
Throws
IllegalArgumentException if type is not in the range of 0 to 255, inclusive.

Public Methods

public final int getType ()

Returns the server name type of this SNIMatcher object.

Returns
  • the server name type of this SNIMatcher object.
See Also

public abstract boolean matches (SNIServerName serverName)

Attempts to match the given SNIServerName.

Parameters
serverName the SNIServerName instance on which this matcher performs match operations
Returns
  • true if, and only if, the matcher matches the given serverName
Throws
NullPointerException if serverName is null
IllegalArgumentException if serverName is not of the given server name type of this matcher
See Also