所有类


javax.net.ssl
接口 SSLSession


public interface SSLSession

在 SSL 中,会话用来描述两个实体间正在发生的关系。每个 SSL 连接在某一时刻都会涉及一个会话,但是该会话可以同时地或相继地用在这些实体的多个连接上。还可以用不同的会话代替某一连接上使用的会话。会话是作为 SSL 握手协议的一部分创建或重新加入的。影响安全或资源使用的策略或由应用程序显式调用 invalidate 可能使会话无效。会话管理策略通常用来调优性能。

除了标准会话属性之外,SSL 会话还会公开以下这些只读属性:

  • 同位体的身份。 会话是在特定客户端和特定服务器之间进行的。同位体的身份可能已作为会话设置的一部分建立。同位体通常是用 X.509 证书链标识。
  • 密码套件的名称。密码套件描述在特定会话中的连接使用的加密保护的种类。
  • 同位体主机。一次会话的所有连接都是在相同的两个主机之间进行的。连接的另一端的主机的地址是可用的。

可以显式地使会话无效。当遇到某种错误时,也可以隐式地使会话无效。

从以下版本开始:
1.4

方法摘要
 int getApplicationBufferSize()
          Gets the size of the largest application buffer that may occur when using this session. SSLEngine 应用数据缓冲区必须足够大以容纳所接收的来自任何入站网络应用数据包的应用数据。
 String getCipherSuite()
          返回会话中的所有连接使用的 SSL 密码套件的名称。
 long getCreationTime()
          返回创建此会话的表现形式的时间,该时间自协调世界时 1970 年 1 月 1 日午夜起经过的毫秒数。
 byte[] getId()
          返回分配给此会话的标识符。
 long getLastAccessedTime()
          返回此会话表示上一次被会话级基础设施访问的时间,该时间是自协调世界时 1970 年 1 月 1 日午夜起经过的毫秒数。
 Certificate[] getLocalCertificates()
          返回握手期间发送给同位体的证书。
 Principal getLocalPrincipal()
          返回握手期间发送给同位体的主体。
 int getPacketBufferSize()
          获取使用此会话时可能出现的最大 SSL/TLS 包的大小。
 X509Certificate[] getPeerCertificateChain()
          返回同位体的身份,该同位体被标识作为定义会话的一部分。
 Certificate[] getPeerCertificates()
          返回同位体的身份,该同位体是作为定义会话的一部分而建立的。
 String getPeerHost()
          返回此会话中同位体的主机名称。
 int getPeerPort()
          返回此会话中同位体的端口号。
 Principal getPeerPrincipal()
          返回同位体的身份,该同位体是作为定义会话的一部分而建立的。
 String getProtocol()
          返回会话中的所有连接使用的协议的标准名称。
 SSLSessionContext getSessionContext()
          返回此会话所在的上下文。
 Object getValue(String name)
          返回会话的应用层数据中的绑定到给定名称的对象。
 String[] getValueNames()
          返回绑定到会话中的所有应用层数据对象的名称组成的数组。
 void invalidate()
          使会话失效。
 boolean isValid()
          返回此会话对于恢复和加入是否是有效的和可用的。
 void putValue(String name, Object value)
          使用给定的 name 将指定的 value 对象绑定到会话的应用层数据中。
 void removeValue(String name)
          移除会话的应用层数据中绑定到给定名称的对象。
 

方法详细信息

getId

byte[] getId()
返回分配给此会话的标识符。

返回:
会话的标识符

getSessionContext

SSLSessionContext getSessionContext()
返回此会话所在的上下文。

此上下文在一些环境中可能不可用,在这种情况下,此方法返回 null。

如果该上下文可用并且有一个已安装的安全管理器,则调用方可能需要访问它的权限,或者可能抛出安全异常。在 Java 2 环境中,使用 SSLPermission("getSSLSessionContext") 权限调用安全管理器的 checkPermission 方法。

返回:
用于此会话的会话上下文;如果上下文不可用,则返回 null。

getCreationTime

long getCreationTime()
返回创建此会话的表现形式的时间,该时间自协调世界时 1970 年 1 月 1 日午夜起经过的毫秒数。

返回:
创建此会话的时间。

getLastAccessedTime

long getLastAccessedTime()
返回此会话表示上一次被会话级基础设施访问的时间,该时间是自协调世界时 1970 年 1 月 1 日午夜起经过的毫秒数。

访问指示使用会话数据建立一个新的连接。应用级操作(例如获取和设置与会话相关的值)在此访问进行时没有得到反映。

此信息在会话管理策略中特别有用。例如,会话管理器线程可以将所有会话放在一个很长时间未被使用的给定上下文中;或者可能根据生存时间对会话进行排序,以优化一些任务。

返回:
上一次访问此会话的时间

invalidate

void invalidate()
使会话失效。

将来的连接无法恢复或加入此会话。但是,任何使用此会话的现有连接可以继续使用此会话,直到该连接关闭。

另请参见:
isValid()

isValid

boolean isValid()
返回此会话对于恢复和加入是否是有效的和可用的。

返回:
如果可以重新加入此会话,则返回 true。
从以下版本开始:
1.5
另请参见:
invalidate()

putValue

void putValue(String name,
              Object value)
使用给定的 name 将指定的 value 对象绑定到会话的应用层数据中。

替换任何使用相同 name 的现有绑定。如果新的(或现有)value 实现了 SSLSessionBindingListener 接口,则在适当的时候通知 value 表示的对象。

处于安全原因,命名相同的值在不同的访问控制上下文之间是不可见的。

参数:
name - 数据对象将要绑定到的名称。此参数不可以为 null。
value - 将要绑定的数据对象。此参数不可以为 null。
抛出:
IllegalArgumentException - 如果任何一个参数为 null。

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部