- 所有已实现的接口:
-
RMIServerSocketFactory
SslRMIServerSocketFactory
实例被RMI运行时用于通过SSL获取RMI调用的服务器套接字。
此类通过安全套接字层(SSL)或传输层安全性(TLS)协议实现RMIServerSocketFactory
。
此类使用默认的SSLSocketFactory
(参见SSLSocketFactory.getDefault()
)或默认的SSLServerSocketFactory
(参见SSLServerSocketFactory.getDefault()
)创建SSL套接字,除非使用带有SSLContext
的构造函数,在这种情况下,SSL套接字是使用SSLContext.getSocketFactory()
返回的SSLSocketFactory
或SSLContext.getServerSocketFactory()
返回的SSLServerSocketFactory
创建的。当未提供SSLContext
时,此类的所有实例共享相同的密钥库和信任库(服务器需要客户端身份验证时)。通过提供已初始化的SSLContext
实例可以修改此行为。
- 自从:
- 1.5
- 参见:
-
Constructor Summary
ConstructorDescription创建一个具有默认SSL套接字配置的新SslRMIServerSocketFactory
。SslRMIServerSocketFactory
(String[] enabledCipherSuites, String[] enabledProtocols, boolean needClientAuth) 创建一个具有指定SSL套接字配置的新SslRMIServerSocketFactory
。SslRMIServerSocketFactory
(SSLContext context, String[] enabledCipherSuites, String[] enabledProtocols, boolean needClientAuth) 创建一个具有指定SSLContext
和SSL套接字配置的新SslRMIServerSocketFactory
。 -
Method Summary
Modifier and TypeMethodDescriptioncreateServerSocket
(int port) 创建一个服务器套接字,根据此工厂的SSL套接字配置参数接受SSL连接。boolean
指示某个对象是否与此对象"相等"。final String[]
返回此工厂创建的服务器套接字上接受的SSL连接上启用的密码套件的名称,如果此工厂使用默认启用的密码套件,则返回null
。final String[]
返回此工厂创建的服务器套接字上接受的SSL连接上启用的协议版本的名称,如果此工厂使用默认启用的协议版本,则返回null
。final boolean
返回此工厂创建的服务器套接字上接受的SSL连接是否需要客户端身份验证。int
hashCode()
返回此SslRMIServerSocketFactory
的哈希码值。
-
Constructor Details
-
SslRMIServerSocketFactory
public SslRMIServerSocketFactory()创建一个具有默认SSL套接字配置的新
SslRMIServerSocketFactory
。此工厂创建的服务器套接字上接受的SSL连接具有默认启用的密码套件和协议版本,并且不需要客户端身份验证。
-
SslRMIServerSocketFactory
public SslRMIServerSocketFactory(String[] enabledCipherSuites, String[] enabledProtocols, boolean needClientAuth) throws IllegalArgumentException 创建一个具有指定SSL套接字配置的新
SslRMIServerSocketFactory
。- 参数:
-
enabledCipherSuites
- 在此工厂创建的服务器套接字上接受的SSL连接上启用的所有密码套件的名称,或null
以使用默认启用的密码套件 -
enabledProtocols
- 在此工厂创建的服务器套接字上接受的SSL连接上启用的所有协议版本的名称,或null
以使用默认启用的协议版本 -
needClientAuth
-true
表示要求此工厂创建的服务器套接字上接受的SSL连接需要客户端身份验证;false
表示不需要客户端身份验证 - 抛出:
-
IllegalArgumentException
- 当由enabledCipherSuites
参数命名的一个或多个密码套件不受支持,由enabledProtocols
参数命名的一个或多个协议不受支持,或在尝试检查所提供的要启用的密码套件和协议是否受支持时遇到问题时 - 参见:
-
SslRMIServerSocketFactory
public SslRMIServerSocketFactory(SSLContext context, String[] enabledCipherSuites, String[] enabledProtocols, boolean needClientAuth) throws IllegalArgumentException 创建一个具有指定
SSLContext
和SSL套接字配置的新SslRMIServerSocketFactory
。- 参数:
-
context
- 用于创建SSL套接字的SSL上下文。如果context
为null,则将使用默认的SSLSocketFactory
或默认的SSLServerSocketFactory
来创建SSL套接字。否则,将使用SSLContext.getSocketFactory()
或SSLContext.getServerSocketFactory()
返回的套接字工厂。 -
enabledCipherSuites
- 在此工厂创建的服务器套接字上接受的SSL连接上启用的所有密码套件的名称,或null
以使用默认启用的密码套件 -
enabledProtocols
- 在此工厂创建的服务器套接字上接受的SSL连接上启用的所有协议版本的名称,或null
以使用默认启用的协议版本 -
needClientAuth
-true
表示要求此工厂创建的服务器套接字上接受的SSL连接需要客户端身份验证;false
表示不需要客户端身份验证 - 抛出:
-
IllegalArgumentException
- 当由enabledCipherSuites
参数命名的一个或多个密码套件不受支持,由enabledProtocols
参数命名的一个或多个协议不受支持,或在尝试检查所提供的要启用的密码套件和协议是否受支持时遇到问题时 - 自从:
- 1.7
- 参见:
-
-
Method Details
-
getEnabledCipherSuites
返回此工厂创建的服务器套接字上接受的SSL连接上启用的密码套件的名称,如果此工厂使用默认启用的密码套件,则返回
null
。- 返回:
-
启用的密码套件的数组,或
null
- 参见:
-
getEnabledProtocols
返回此工厂创建的服务器套接字上接受的SSL连接上启用的协议版本的名称,如果此工厂使用默认启用的协议版本,则返回
null
。- 返回:
-
启用的协议版本的数组,或
null
- 参见:
-
getNeedClientAuth
public final boolean getNeedClientAuth()返回此工厂创建的服务器套接字上接受的SSL连接是否需要客户端身份验证。
- 返回:
-
如果需要客户端身份验证,则返回
true
- 参见:
-
createServerSocket
创建一个根据此工厂的SSL套接字配置参数配置的接受SSL连接的服务器套接字。
- 指定者:
-
createServerSocket
在接口RMIServerSocketFactory
- 参数:
-
port
- 端口号 - 返回:
- 指定端口上的服务器套接字
- 抛出:
-
IOException
- 如果在创建服务器套接字期间发生I/O错误
-
equals
指示某个对象是否与此对象"相等"。
如果两个
SslRMIServerSocketFactory
对象使用相同的SSL上下文和SSL套接字配置参数构造,则它们相等。如果子类添加了影响相等性的实例状态,则应重写此方法(以及
hashCode()
)。 -
hashCode
public int hashCode()返回此
SslRMIServerSocketFactory
的哈希码值。
-