Package org.apache.tomcat.util.net
Class TLSClientHelloExtractor
- java.lang.Object
-
- org.apache.tomcat.util.net.TLSClientHelloExtractor
-
public class TLSClientHelloExtractor extends java.lang.ObjectThis class extracts the SNI host name and ALPN protocols from a TLS client-hello message.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classTLSClientHelloExtractor.ExtractorResultPossible results of TLS ClientHello extraction.
-
Field Summary
Fields Modifier and Type Field Description static byte[]USE_TLS_RESPONSEHTTP response sent to clients that connect without TLS when TLS is required.
-
Constructor Summary
Constructors Constructor Description TLSClientHelloExtractor(java.nio.ByteBuffer netInBuffer)Creates the instance of the parser and processes the provided buffer.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.List<java.lang.String>getClientRequestedApplicationProtocols()Returns the application-level protocols requested by the client.java.util.List<java.lang.String>getClientRequestedCipherNames()Returns the names of cipher suites requested by the client.java.util.List<Cipher>getClientRequestedCiphers()Returns the list of cipher suites requested by the client.java.util.List<java.lang.String>getClientRequestedProtocols()Returns the transport protocols requested by the client.java.util.List<SignatureScheme>getClientSignatureSchemes()Returns the signature schemes requested by the client.java.util.List<Group>getClientSupportedGroups()Returns the key exchange groups supported by the client.TLSClientHelloExtractor.ExtractorResultgetResult()Returns the result of the TLS ClientHello extraction.java.lang.StringgetSNIValue()Returns the SNI value provided by the client.
-
-
-
Constructor Detail
-
TLSClientHelloExtractor
public TLSClientHelloExtractor(java.nio.ByteBuffer netInBuffer) throws java.io.IOExceptionCreates the instance of the parser and processes the provided buffer. The buffer position and limit will be modified during the execution of this method, but they will be returned to the original values before the method exits.- Parameters:
netInBuffer- The buffer containing the TLS data to process- Throws:
java.io.IOException- If the client hello message is malformed
-
-
Method Detail
-
getResult
public TLSClientHelloExtractor.ExtractorResult getResult()
Returns the result of the TLS ClientHello extraction.- Returns:
- the extraction result
-
getSNIValue
public java.lang.String getSNIValue()
Returns the SNI value provided by the client.- Returns:
- The SNI value provided by the client converted to lower case if not already lower case
-
getClientRequestedCiphers
public java.util.List<Cipher> getClientRequestedCiphers()
Returns the list of cipher suites requested by the client.- Returns:
- the list of requested cipher suites
-
getClientRequestedCipherNames
public java.util.List<java.lang.String> getClientRequestedCipherNames()
Returns the names of cipher suites requested by the client.- Returns:
- the list of cipher suite names
-
getClientRequestedApplicationProtocols
public java.util.List<java.lang.String> getClientRequestedApplicationProtocols()
Returns the application-level protocols requested by the client.- Returns:
- the list of requested application protocols
-
getClientRequestedProtocols
public java.util.List<java.lang.String> getClientRequestedProtocols()
Returns the transport protocols requested by the client.- Returns:
- the list of requested protocols
-
getClientSupportedGroups
public java.util.List<Group> getClientSupportedGroups()
Returns the key exchange groups supported by the client.- Returns:
- the list of supported groups
-
getClientSignatureSchemes
public java.util.List<SignatureScheme> getClientSignatureSchemes()
Returns the signature schemes requested by the client.- Returns:
- the list of signature schemes
-
-