Package org.apache.tomcat.util.net

# Class TLSClientHelloExtractor

java.lang.Object
org.apache.tomcat.util.net.TLSClientHelloExtractor

public class TLSClientHelloExtractor extends Object
This 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 enum`
  `TLSClientHelloExtractor.ExtractorResult`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static byte[]`
  `USE_TLS_RESPONSE`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `TLSClientHelloExtractor(ByteBuffer netInBuffer)`
  Creates the instance of the parser and processes the provided buffer.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `List<String>`
  `getClientRequestedApplicationProtocols()`
  `List<String>`
  `getClientRequestedCipherNames()`
  `List<Cipher>`
  `getClientRequestedCiphers()`
  `List<String>`
  `getClientRequestedProtocols()`
  `TLSClientHelloExtractor.ExtractorResult`
  `getResult()`
  `String`
  `getSNIValue()`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### USE_TLS_RESPONSE

    public static byte[] USE_TLS_RESPONSE

- ## Constructor Details

  - ### TLSClientHelloExtractor

    public TLSClientHelloExtractor(ByteBuffer netInBuffer) throws IOException
    Creates 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:
      `IOException` - If the client hello message is malformed

- ## Method Details

  - ### getResult

    public TLSClientHelloExtractor.ExtractorResult getResult()

  - ### getSNIValue

    public String getSNIValue()
    Returns:
      The SNI value provided by the client converted to lower case if not already lower case.

  - ### getClientRequestedCiphers

    public List<Cipher> getClientRequestedCiphers()

  - ### getClientRequestedCipherNames

    public List<String> getClientRequestedCipherNames()

  - ### getClientRequestedApplicationProtocols

    public List<String> getClientRequestedApplicationProtocols()

  - ### getClientRequestedProtocols

    public List<String> getClientRequestedProtocols()