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
对象的超时限制。void
setSessionCacheSize
(int size) 设置用于存储在此SSLSessionContext
下分组的SSLSession
对象的缓存大小。void
setSessionTimeout
(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。 - 返回:
- 会话缓存的大小;零表示没有大小限制。
- 参见:
-