public interface SSLSessionContext
一个
SSLSessionContext表示与单个实体关联的一组SSLSession。例如,它可以与同时参与多个会话的服务器或客户端关联。
并非所有环境都包含会话上下文。例如,无状态会话恢复。
会话上下文可能不包含所有会话。例如,无状态会话不存储在会话上下文中。
有影响会话存储方式的SSLSessionContext参数:
- 会话可以在指定时间限制后过期。
- 可以限制上下文中可以存储的会话数量。
SSLSessionContext中的所有会话ID。
- 自版本:
- 1.4
- 参见:
-
Method Summary
Modifier and TypeMethodDescriptionEnumeration<byte[]> getIds()返回在此SSLSessionContext下分组的所有已知会话ID的枚举。getSession(byte[] sessionId) 返回绑定到指定会话ID的SSLSession。int返回用于存储在此SSLSessionContext下分组的SSLSession对象的缓存大小。int返回在此SSLSessionContext下分组的SSLSession对象的超时限制。voidsetSessionCacheSize(int size) 设置用于存储在此SSLSessionContext下分组的SSLSession对象的缓存大小。voidsetSessionTimeout(int seconds) 设置在此SSLSessionContext下分组的SSLSession对象的超时限制。
-
Method Details
-
getSession
返回绑定到指定会话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实现对会话缓存大小和超时都使用默认值。有关更多信息,请参阅
getSessionCacheSize和getSessionTimeout。应用程序应考虑其性能要求,必要时覆盖默认值。 - 参数:
-
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实现对会话缓存大小和超时都使用默认值。有关更多信息,请参阅
getSessionCacheSize和getSessionTimeout。应用程序应考虑其性能要求,必要时覆盖默认值。 - 参数:
-
size- 新的会话缓存大小限制;零表示没有限制。 - 抛出:
-
IllegalArgumentException- 如果指定的大小小于0。 - 参见:
-
getSessionCacheSize
int getSessionCacheSize()返回用于存储在此SSLSessionContext下分组的SSLSession对象的缓存大小。- 实现注释:
-
JDK实现将缓存大小返回为由
setSessionCacheSize方法设置的值,如果未设置,则返回javax.net.ssl.sessionCacheSize系统属性的值。如果两者都未设置,则返回默认值20480。 - 返回:
- 会话缓存的大小;零表示没有大小限制。
- 参见:
-