Package org.apache.tomcat.util.net

## Class SSLImplementation

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

Direct Known Subclasses:
  `JSSEImplementation`, `OpenSSLImplementation`

    public abstract class SSLImplementation
    extends java.lang.Object

Provides a factory and base implementation for the Tomcat specific mechanism that allows alternative SSL/TLS implementations to be used without requiring the implementation of a full JSSE provider.

### Constructor Summary

Constructors
`SSLImplementation()`

### Method Summary

All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods
`static SSLImplementation` `getInstance​(java.lang.String className)` Obtain an instance (not a singleton) of the implementation with the given class name.
`abstract SSLSupport` `getSSLSupport​(javax.net.ssl.SSLSession session)` Deprecated. This will be removed in Tomcat 10.1.x onwards.
`SSLSupport` `getSSLSupport​(javax.net.ssl.SSLSession session, java.util.Map<java.lang.String,​java.util.List<java.lang.String>> additionalAttributes)` Obtain an instance of SSLSupport.
`abstract SSLUtil` `getSSLUtil​(SSLHostConfigCertificate certificate)`
`abstract boolean` `isAlpnSupported()`

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

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

### Constructor Detail

#### SSLImplementation

    public SSLImplementation()

### Method Detail

#### getInstance

    public static SSLImplementation getInstance​(java.lang.String className)
                                         throws java.lang.ClassNotFoundException

Obtain an instance (not a singleton) of the implementation with the given class name.

Parameters:
  `className` - The class name of the required implementation or null to use the default (currently `JSSEImplementation`.
Returns:
  An instance of the required implementation
Throws:
  `java.lang.ClassNotFoundException` - If an instance of the requested class cannot be created

#### getSSLSupport

    public SSLSupport getSSLSupport​(javax.net.ssl.SSLSession session,
                                    java.util.Map<java.lang.String,​java.util.List<java.lang.String>> additionalAttributes)

Obtain an instance of SSLSupport.

Parameters:
  `session` - The SSL session
  `additionalAttributes` - Additional SSL attributes that are not available from the session.
Returns:
  An instance of SSLSupport based on the given session and the provided additional attributes

#### getSSLSupport

    @Deprecated
    public abstract SSLSupport getSSLSupport​(javax.net.ssl.SSLSession session)

Deprecated.
This will be removed in Tomcat 10.1.x onwards. Use `getSSLSupport(SSLSession, Map)`.
Obtain an instance of SSLSupport.

Parameters:
  `session` - The TLS session
Returns:
  An instance of SSLSupport based on the given session.

#### getSSLUtil

    public abstract SSLUtil getSSLUtil​(SSLHostConfigCertificate certificate)

#### isAlpnSupported

    public abstract boolean isAlpnSupported()