Package org.apache.tomcat.util.net

## Class TLSClientHelloExtractor

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

    public class TLSClientHelloExtractor
    extends java.lang.Object

This class extracts the SNI host name and ALPN protocols from a TLS client-hello message.

### Nested Class Summary

Nested Classes
`static class` `TLSClientHelloExtractor.ExtractorResult`

### Field Summary

Fields
`static byte[]` `USE_TLS_RESPONSE`

### Constructor Summary

Constructors
`TLSClientHelloExtractor​(java.nio.ByteBuffer netInBuffer)` Creates the instance of the parser and processes the provided buffer.

### Method Summary

All Methods Instance Methods Concrete Methods
`java.util.List<java.lang.String>` `getClientRequestedApplicationProtocols()`
`java.util.List<java.lang.String>` `getClientRequestedCipherNames()`
`java.util.List<Cipher>` `getClientRequestedCiphers()`
`java.util.List<java.lang.String>` `getClientRequestedProtocols()`
`TLSClientHelloExtractor.ExtractorResult` `getResult()`
`java.lang.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​(java.nio.ByteBuffer netInBuffer)
                            throws java.io.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:
  `java.io.IOException` - If the client hello message is malformed

### Method Detail

#### getResult

    public TLSClientHelloExtractor.ExtractorResult getResult()

#### getSNIValue

    public java.lang.String getSNIValue()

Returns:
  The SNI value provided by the client converted to lower case if not already lower case.

#### getClientRequestedCiphers

    public java.util.List<Cipher> getClientRequestedCiphers()

#### getClientRequestedCipherNames

    public java.util.List<java.lang.String> getClientRequestedCipherNames()

#### getClientRequestedApplicationProtocols

    public java.util.List<java.lang.String> getClientRequestedApplicationProtocols()

#### getClientRequestedProtocols

    public java.util.List<java.lang.String> getClientRequestedProtocols()