Module java.base
Package javax.net.ssl

Interface SSLSessionContext


public interface SSLSessionContext
一个SSLSessionContext表示与单个实体关联的一组SSLSession。例如,它可以与同时参与多个会话的服务器或客户端关联。

并非所有环境都包含会话上下文。例如,无状态会话恢复。

会话上下文可能不包含所有会话。例如,无状态会话不存储在会话上下文中。

有影响会话存储方式的SSLSessionContext参数:

  • 会话可以在指定时间限制后过期。
  • 可以限制上下文中可以存储的会话数量。
可以根据其会话ID检索会话,并列出SSLSessionContext中的所有会话ID。
自版本:
1.4
参见:
  • Method Summary

    Modifier and Type
    Method
    Description
    Enumeration<byte[]>
    getIds()
    返回在此SSLSessionContext下分组的所有已知会话ID的枚举。
    getSession(byte[] sessionId)
    返回绑定到指定会话ID的SSLSession
    int
    返回用于存储在此SSLSessionContext下分组的SSLSession对象的缓存大小。
    int
    返回在此SSLSessionContext下分组的SSLSession对象的超时限制。
    void
    setSessionCacheSize(int size)
    设置用于存储在此SSLSessionContext下分组的SSLSession对象的缓存大小。
    void
    setSessionTimeout(int seconds)
    设置在此SSLSessionContext下分组的SSLSession对象的超时限制。
  • Method Details

    • getSession

      SSLSession getSession(byte[] sessionId)
      返回绑定到指定会话ID的SSLSession
      参数:
      sessionId - 会话标识符
      返回:
      SSLSession,如果指定的会话ID不引用有效的SSLSession,则返回null。
      抛出:
      NullPointerException - 如果sessionId为null。
    • getIds

      Enumeration<byte[]> getIds()
      返回在此SSLSessionContext下分组的所有已知会话ID的枚举。

      会话上下文可能不包含所有会话。例如,无状态会话不存储在会话上下文中。

      返回:
      所有会话ID的枚举
    • setSessionTimeout

      void setSessionTimeout(int seconds)
      设置在此SSLSessionContext下分组的SSLSession对象的超时限制。

      如果将超时限制设置为't'秒,则会话在创建后超过't'秒后超过超时限制。当会话超过超时限制时,SSLSession对象将无效,并且未来连接无法恢复或重新加入会话。每当更改此SSLSessionContext的超时限制时,都会立即检查是否有会话超过超时限制。

      API注释:
      请注意,JDK实现对会话缓存大小和超时都使用默认值。有关更多信息,请参阅getSessionCacheSizegetSessionTimeout。应用程序应考虑其性能要求,必要时覆盖默认值。
      参数:
      seconds - 新的会话超时限制(以秒为单位);零表示没有限制。
      抛出:
      IllegalArgumentException - 如果指定的超时小于0。
      参见:
    • getSessionTimeout

      int getSessionTimeout()
      返回在此SSLSessionContext下分组的SSLSession对象的超时限制。

      如果将超时限制设置为't'秒,则会话在创建后超过't'秒后超过超时限制。当会话超过超时限制时,SSLSession对象将无效,并且未来连接无法恢复或重新加入会话。每当更改此SSLSessionContext的超时限制时,都会立即检查是否有会话超过超时限制。

      实现注释:
      JDK实现将会话超时返回为由setSessionTimeout方法设置的值,如果未设置,则返回默认值86400秒(24小时)。
      返回:
      会话超时限制(以秒为单位);零表示没有限制。
      参见:
    • setSessionCacheSize

      void setSessionCacheSize(int size)
      设置用于存储在此SSLSessionContext下分组的SSLSession对象的缓存大小。
      API注释:
      请注意,JDK实现对会话缓存大小和超时都使用默认值。有关更多信息,请参阅getSessionCacheSizegetSessionTimeout。应用程序应考虑其性能要求,必要时覆盖默认值。
      参数:
      size - 新的会话缓存大小限制;零表示没有限制。
      抛出:
      IllegalArgumentException - 如果指定的大小小于0。
      参见:
    • getSessionCacheSize

      int getSessionCacheSize()
      返回用于存储在此SSLSessionContext下分组的SSLSession对象的缓存大小。
      实现注释:
      JDK实现将缓存大小返回为由setSessionCacheSize方法设置的值,如果未设置,则返回javax.net.ssl.sessionCacheSize系统属性的值。如果两者都未设置,则返回默认值20480。
      返回:
      会话缓存的大小;零表示没有大小限制。
      参见: