public interface SSLSession
invalidate
。会话管理策略通常用于调整性能。
除了标准的SSL会话的会话属性,揭露这些只读属性:
会话可以明确无效。也可以隐式地进行失效,当面对某些类型的错误时。
Modifier and Type | Method and Description |
---|---|
int |
getApplicationBufferSize()
获取使用此会话时预期的最大应用程序数据的当前大小。
|
String |
getCipherSuite()
返回的SSL加密套件,用于在会话中所有连接的名称。
|
long |
getCreationTime()
返回的时候,这个会议表示被创建,以毫秒为单位自1970年1月1日午夜,UTC。
|
byte[] |
getId()
返回分配给此会话的标识符。
|
long |
getLastAccessedTime()
返回最后一次会议的代表是由会话级基础设施的访问,以毫秒为单位自1970年1月1日午夜,UTC。
|
Certificate[] |
getLocalCertificates()
返回证书(S)在发送给同伴握手。
|
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)
将指定的
value 对象与给定的
name 会话的应用层数据。
|
void |
removeValue(String name)
在会话的应用层数据中删除绑定到给定名称的对象。
|
byte[] getId()
SSLSessionContext getSessionContext()
在某些环境中,这种情况可能是不可用的,在这种情况下,该方法返回空。
如果上下文是可用的,并且安装了一个安全管理器,则调用方可能需要访问它的权限或抛出一个安全异常。在java环境,安全管理的checkPermission
方法称为一个SSLPermission("getSSLSessionContext")
许可。
SecurityException
如果调用线程不允许获得SSL会话的上下文。
long getCreationTime()
long getLastAccessedTime()
访问表示使用会话数据建立了一个新的连接。应用程序级的操作,如获取或设置与会话关联的值,并没有反映在该访问时间内。
此信息在会话管理策略中是非常有用的。例如,一个会话管理器线程可以在一个给定的上下文中,在很长的时间内没有被使用的所有会话,或,会话可能根据年龄进行排序,以优化一些任务。
void invalidate()
未来的连接将无法恢复或参加本次会议。然而,使用此会话的任何现有的连接都可以继续使用会话,直到连接关闭为止。
isValid()
boolean isValid()
invalidate()
void putValue(String name, Object value)
value
对象与给定的
name
会话的应用层数据。
任何现有的结合使用相同的name
取代。如果新的(或存在)value
实现SSLSessionBindingListener
接口,以value
对象通知适当的。
出于安全原因,在不同的访问控制上下文中,相同的命名值可能不可见。
name
-名称的数据对象将被绑定。这可能不是空。
value
-要绑定的数据对象。这可能不是空。
IllegalArgumentException
-如果任一参数为null。
Object getValue(String name)
出于安全原因,在不同的访问控制上下文中,相同的命名值可能不可见。
name
-绑定的名字查找。
IllegalArgumentException
-如果参数为空。
void removeValue(String name)
SessionBindingListener
接口,它是适当的通知。
出于安全原因,在不同的访问控制上下文中,相同的命名值可能不可见。
name
-对象的名称删除可见不同的访问控制环境
IllegalArgumentException
-如果参数为空。
String[] getValueNames()
出于安全原因,在不同的访问控制上下文中,相同的命名值可能不可见。
Certificate[] getPeerCertificates() throws SSLPeerUnverifiedException
注:此方法可用于只有当使用基于证书的密码套件;使用基于无证书密码套件,如Kerberos,将抛出一个sslpeerunverifiedexception。
SSLPeerUnverifiedException
如果同伴的身份尚未证实
getPeerPrincipal()
Certificate[] getLocalCertificates()
注:此方法仅在使用基于证书的密码套件时是有用的。
当多个证书可用于握手时,实现选择它认为“最好的”证书链可用,并将其发送到另一方。此方法允许调用方知道实际使用了哪些证书链。
getLocalPrincipal()
X509Certificate[] getPeerCertificateChain() throws SSLPeerUnverifiedException
注:此方法可用于只有当使用基于证书的密码套件;使用基于无证书密码套件,如Kerberos,将抛出一个sslpeerunverifiedexception。
注:此方法存在于与以前版本的兼容性。新的应用程序应使用getpeercertificates()相反。
X509Certificate
JSSE格式。)
SSLPeerUnverifiedException
如果同伴的身份尚未证实
getPeerPrincipal()
Principal getPeerPrincipal() throws SSLPeerUnverifiedException
SSLPeerUnverifiedException
如果同伴的身份尚未证实
getPeerCertificates()
,
getLocalPrincipal()
Principal getLocalPrincipal()
getLocalCertificates()
,
getPeerPrincipal()
String getCipherSuite()
这定义了提供给连接上发送的数据的保护级别,包括使用的加密和身份验证如何完成的大部分方面。
String getProtocol()
这定义了连接中使用的协议。
String getPeerHost()
对于服务器来说,这是客户端的主机;对于客户端,它是服务器的主机。这个名称可能不是一个完全合格的主机名,甚至一个主机名,因为它可能代表了一个对等的网络地址的字符串编码。如果希望这样的名称,它可能通过基于该方法返回的值的名称服务来解析。
此值没有被验证,不应依赖。它主要用于SSLSession
缓存策略提示。
int getPeerPort()
对于服务器来说,这是客户端的端口号;对于客户端,它是服务器的端口号。
此值没有被验证,不应依赖。它主要用于SSLSession
缓存策略提示。
int getPacketBufferSize()
一个SSLEngine
使用该会话可能会生成SSL / TLS包到任意大小和包括该方法返回的值。所有的SSLEngine
网络缓冲区的大小应至少这大避免空间不足问题时进行wrap
和unwrap
电话。
SSLEngine.wrap(ByteBuffer, ByteBuffer)
,
SSLEngine.unwrap(ByteBuffer, ByteBuffer)
int getApplicationBufferSize()
SSLEngine
应用数据缓冲区必须足够大以容纳任何入站网络应用数据包的应用程序接收数据。通常情况下,出站应用程序数据缓冲区可以是任意大小的。
SSLEngine.wrap(ByteBuffer, ByteBuffer)
,
SSLEngine.unwrap(ByteBuffer, ByteBuffer)
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.