# Class OpenSSLSessionContext

java.lang.Object
org.apache.tomcat.util.net.openssl.OpenSSLSessionContext

All Implemented Interfaces:
  `SSLSessionContext`

public class OpenSSLSessionContext extends Object implements SSLSessionContext
OpenSSL specific `SSLSessionContext` implementation.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Enumeration<byte[]>`
  `getIds()`
  `SSLSession`
  `getSession(byte[] bytes)`
  `int`
  `getSessionCacheSize()`
  `int`
  `getSessionTimeout()`
  `boolean`
  `isSessionCacheEnabled()`
  `void`
  `setSessionCacheEnabled(boolean enabled)`
  Enable or disable caching of SSL sessions.
  `void`
  `setSessionCacheSize(int size)`
  `boolean`
  `setSessionIdContext(byte[] sidCtx)`
  Set the context within which session be reused (server side only) See man SSL_CTX_set_session_id_context
  `void`
  `setSessionTimeout(int seconds)`
  `void`
  `setTicketKeys(byte[] keys)`
  Sets the SSL session ticket keys of this context.
  `OpenSSLSessionStats`
  `stats()`

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

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

- ## Method Details

  - ### getSession

    public SSLSession getSession(byte[] bytes)
    Specified by:
      `getSession` in interface `SSLSessionContext`

  - ### getIds

    public Enumeration<byte[]> getIds()
    Specified by:
      `getIds` in interface `SSLSessionContext`

  - ### setTicketKeys

    public void setTicketKeys(byte[] keys)
    Sets the SSL session ticket keys of this context.
    Parameters:
      `keys` - The session ticket keys

  - ### setSessionCacheEnabled

    public void setSessionCacheEnabled(boolean enabled)
    Enable or disable caching of SSL sessions.
    Parameters:
      `enabled` - `true` to enable caching, `false` to disable

  - ### isSessionCacheEnabled

    public boolean isSessionCacheEnabled()
    Returns:
      `true` if caching of SSL sessions is enabled, `false` otherwise.

  - ### stats

    public OpenSSLSessionStats stats()
    Returns:
      The statistics for this context.

  - ### setSessionTimeout

    public void setSessionTimeout(int seconds)
    Specified by:
      `setSessionTimeout` in interface `SSLSessionContext`

  - ### getSessionTimeout

    public int getSessionTimeout()
    Specified by:
      `getSessionTimeout` in interface `SSLSessionContext`

  - ### setSessionCacheSize

    public void setSessionCacheSize(int size)
    Specified by:
      `setSessionCacheSize` in interface `SSLSessionContext`

  - ### getSessionCacheSize

    public int getSessionCacheSize()
    Specified by:
      `getSessionCacheSize` in interface `SSLSessionContext`

  - ### setSessionIdContext

    public boolean setSessionIdContext(byte[] sidCtx)
    Set the context within which session be reused (server side only) See man SSL_CTX_set_session_id_context
    Parameters:
      `sidCtx` - can be any kind of binary data, it is therefore possible to use e.g. the name of the application and/or the hostname and/or service name
    Returns:
      `true` if success, `false` otherwise.