ExtendedSSLSession (Java Platform SE 8 )
Keywords: javax.net.ssl.ExtendedSSLSession class
Date: 2026-03-29

compact1, compact2, compact3
javax.net.ssl

## Class ExtendedSSLSession

- java.lang.Object
- - javax.net.ssl.ExtendedSSLSession

- All Implemented Interfaces:
    SSLSession

      public abstract class ExtendedSSLSession
      extends Object
      implements SSLSession

  Extends the `SSLSession` interface to support additional session attributes.
  Since:
    1.7

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `ExtendedSSLSession()`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `abstract String[]` | `getLocalSupportedSignatureAlgorithms()` Obtains an array of supported signature algorithms that the local side is willing to use.
    `abstract String[]` | `getPeerSupportedSignatureAlgorithms()` Obtains an array of supported signature algorithms that the peer is able to use.
    `List<SNIServerName>` | `getRequestedServerNames()` Obtains a `List` containing all `SNIServerName`s of the requested Server Name Indication (SNI) extension.

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

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

    - ### Methods inherited from interface javax.net.ssl.SSLSession

      `getApplicationBufferSize, getCipherSuite, getCreationTime, getId, getLastAccessedTime, getLocalCertificates, getLocalPrincipal, getPacketBufferSize, getPeerCertificateChain, getPeerCertificates, getPeerHost, getPeerPort, getPeerPrincipal, getProtocol, getSessionContext, getValue, getValueNames, invalidate, isValid, putValue, removeValue`

- - ### Constructor Detail

    - #### ExtendedSSLSession

          public ExtendedSSLSession()

  - ### Method Detail

    - #### getLocalSupportedSignatureAlgorithms

          public abstract String[] getLocalSupportedSignatureAlgorithms()

      Obtains an array of supported signature algorithms that the local side is willing to use.

      Note: this method is used to indicate to the peer which signature algorithms may be used for digital signatures since TLS 1.2. It is not meaningful for TLS versions prior to 1.2.

      The signature algorithm name must be a standard Java Security name (such as "SHA1withRSA", "SHA256withECDSA", and so on). See Appendix A in the Java Cryptography Architecture API Specification & Reference for information about standard algorithm names.

      Note: the local supported signature algorithms should conform to the algorithm constraints specified by `getAlgorithmConstraints()` method in `SSLParameters`.

      Returns:
        An array of supported signature algorithms, in descending order of preference. The return value is an empty array if no signature algorithm is supported.
      See Also:
        `SSLParameters.getAlgorithmConstraints()`

    - #### getPeerSupportedSignatureAlgorithms

          public abstract String[] getPeerSupportedSignatureAlgorithms()

      Obtains an array of supported signature algorithms that the peer is able to use.

      Note: this method is used to indicate to the local side which signature algorithms may be used for digital signatures since TLS 1.2. It is not meaningful for TLS versions prior to 1.2.

      The signature algorithm name must be a standard Java Security name (such as "SHA1withRSA", "SHA256withECDSA", and so on). See Appendix A in the Java Cryptography Architecture API Specification & Reference for information about standard algorithm names.

      Returns:
        An array of supported signature algorithms, in descending order of preference. The return value is an empty array if the peer has not sent the supported signature algorithms.
      See Also:
        `X509KeyManager`, `X509ExtendedKeyManager`

    - #### getRequestedServerNames

          public List<SNIServerName> getRequestedServerNames()

      Obtains a `List` containing all `SNIServerName`s of the requested Server Name Indication (SNI) extension.

      In server mode, unless the return `List` is empty, the server should use the requested server names to guide its selection of an appropriate authentication certificate, and/or other aspects of security policy.

      In client mode, unless the return `List` is empty, the client should use the requested server names to guide its endpoint identification of the peer's identity, and/or other aspects of security policy.

      Returns:
        a non-null immutable list of `SNIServerName`s of the requested server name indications. The returned list may be empty if no server name indications were requested.
      Throws:
        `UnsupportedOperationException` - if the underlying provider does not implement the operation
      Since:
        1.8
      See Also:
        `SNIServerName`, `X509ExtendedTrustManager`, `X509ExtendedKeyManager`

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.