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 class` | `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

    All Methods Instance Methods Concrete Methods
    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 Detail

    - #### USE_TLS_RESPONSE

          public static byte[] USE_TLS_RESPONSE

  - ### Constructor Detail

    - #### 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 Detail

    - #### 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()