Module java.base
Package java.net

## Class SecureCacheResponse

- java.lang.Object
- - java.net.CacheResponse
  - - java.net.SecureCacheResponse

-     public abstract class SecureCacheResponse
      extends CacheResponse

  Represents a cache response originally retrieved through secure means, such as TLS.
  Since:
    1.5

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `SecureCacheResponse()` |

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract String` | `getCipherSuite()` | Returns the cipher suite in use on the original connection that retrieved the network resource.
    `abstract List<Certificate>` | `getLocalCertificateChain()` | Returns the certificate chain that were sent to the server during handshaking of the original connection that retrieved the network resource.
    `abstract Principal` | `getLocalPrincipal()` | Returns the principal that was sent to the server during handshaking in the original connection that retrieved the network resource.
    `abstract Principal` | `getPeerPrincipal()` | Returns the server's principal which was established as part of defining the session during the original connection that retrieved the network resource.
    `abstract List<Certificate>` | `getServerCertificateChain()` | Returns the server's certificate chain, which was established as part of defining the session in the original connection that retrieved the network resource, from cache.
    `Optional<SSLSession>` | `getSSLSession()` | Returns an `Optional` containing the `SSLSession` in use on the original connection that retrieved the network resource.

    - ### Methods declared in class java.net.CacheResponse

      `getBody, getHeaders`

    - ### Methods declared in class java.lang.Object

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

- - ### Constructor Detail

    - #### SecureCacheResponse

          public SecureCacheResponse()

  - ### Method Detail

    - #### getCipherSuite

          public abstract String getCipherSuite()

      Returns the cipher suite in use on the original connection that retrieved the network resource.
      Returns:
        a string representing the cipher suite

    - #### getLocalCertificateChain

          public abstract List<Certificate> getLocalCertificateChain()

      Returns the certificate chain that were sent to the server during handshaking of the original connection that retrieved the network resource. Note: This method is useful only when using certificate-based cipher suites.
      Returns:
        an immutable List of Certificate representing the certificate chain that was sent to the server. If no certificate chain was sent, null will be returned.
      See Also:
        `getLocalPrincipal()`

    - #### getServerCertificateChain

          public abstract List<Certificate> getServerCertificateChain()
                                                               throws SSLPeerUnverifiedException

      Returns the server's certificate chain, which was established as part of defining the session in the original connection that retrieved the network resource, from cache. Note: This method can be used only when using certificate-based cipher suites; using it with non-certificate-based cipher suites, such as Kerberos, will throw an SSLPeerUnverifiedException.
      Returns:
        an immutable List of Certificate representing the server's certificate chain.
      Throws:
        `SSLPeerUnverifiedException` - if the peer is not verified.
      See Also:
        `getPeerPrincipal()`

    - #### getPeerPrincipal

          public abstract Principal getPeerPrincipal()
                                              throws SSLPeerUnverifiedException

      Returns the server's principal which was established as part of defining the session during the original connection that retrieved the network resource.
      Returns:
        the server's principal. Returns an X500Principal of the end-entity certificate for X509-based cipher suites, and KerberosPrincipal for Kerberos cipher suites.
      Throws:
        `SSLPeerUnverifiedException` - if the peer was not verified.
      See Also:
        `getServerCertificateChain()`, `getLocalPrincipal()`

    - #### getLocalPrincipal

          public abstract Principal getLocalPrincipal()

      Returns the principal that was sent to the server during handshaking in the original connection that retrieved the network resource.
      Returns:
        the principal sent to the server. Returns an X500Principal of the end-entity certificate for X509-based cipher suites, and KerberosPrincipal for Kerberos cipher suites. If no principal was sent, then null is returned.
      See Also:
        `getLocalCertificateChain()`, `getPeerPrincipal()`

    - #### getSSLSession

          public Optional<SSLSession> getSSLSession()

      Returns an `Optional` containing the `SSLSession` in use on the original connection that retrieved the network resource. Returns an empty `Optional` if the underlying implementation does not support this method.
      Implementation Requirements:
        For compatibility, the default implementation of this method returns an empty `Optional`. Subclasses should override this method with an appropriate implementation since an application may need to access additional parameters associated with the SSL session.
      Returns:
        an `Optional` containing the `SSLSession` in use on the original connection
      Since:
        12
      See Also:
        `SSLSession`