- java.lang.Object
-
- javax.rmi.ssl.SslRMIServerSocketFactory
-
- 实现的所有接口
-
RMIServerSocketFactory
public class SslRMIServerSocketFactory extends Object implements RMIServerSocketFactory
RMI运行时使用
SslRMIServerSocketFactory
实例,以便通过SSL获取RMI调用的服务器套接字。此类通过安全套接字层(SSL)或传输层安全性(TLS)协议实现
RMIServerSocketFactory
。这个类创建使用默认的SSL套接字
SSLSocketFactory
(见SSLSocketFactory.getDefault()
)或默认SSLServerSocketFactory
(见SSLServerSocketFactory.getDefault()
),除非构造服用SSLContext
在使用被创建这种情况下,SSL套接字用于SSLSocketFactory
通过返回SSLContext.getSocketFactory()
或SSLServerSocketFactory
通过返回SSLContext.getServerSocketFactory()
。 如果未提供SSLContext
则SSLContext
所有实例共享相同的密钥库和相同的信任库(当服务器需要客户端身份验证时)。 可以通过提供已初始化的SSLContext
实例来修改此行为。- 从以下版本开始:
- 1.5
- 另请参见:
-
SSLSocketFactory
,SSLServerSocketFactory
,SslRMIClientSocketFactory
-
-
构造方法摘要
构造方法 构造器 描述 SslRMIServerSocketFactory()
使用默认SSL套接字配置创建新的SslRMIServerSocketFactory
。SslRMIServerSocketFactory(String[] enabledCipherSuites, String[] enabledProtocols, boolean needClientAuth)
使用指定的SSL套接字配置创建新的SslRMIServerSocketFactory
。SslRMIServerSocketFactory(SSLContext context, String[] enabledCipherSuites, String[] enabledProtocols, boolean needClientAuth)
使用指定的SSLContext
和SSL套接字配置创建新的SslRMIServerSocketFactory
。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 ServerSocket
createServerSocket(int port)
创建一个服务器套接字,该套接字接受根据此工厂的SSL套接字配置参数配置的SSL连接。boolean
equals(Object obj)
指示某个其他对象是否“等于”此对象。String[]
getEnabledCipherSuites()
返回由此工厂创建的服务器套接字接受的SSL连接上启用的密码套件的名称,如果此工厂使用默认启用的密码套件,则null
。String[]
getEnabledProtocols()
返回由此工厂创建的服务器套接字接受的SSL连接上启用的协议版本的名称,如果此工厂使用默认启用的协议版本,则null
。boolean
getNeedClientAuth()
如果此工厂创建的服务器套接字接受的SSL连接需要客户端身份验证,则返回true
。int
hashCode()
返回此SslRMIServerSocketFactory
的哈希码值。
-
-
-
构造方法详细信息
-
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
参数不支持或者会遇到问题,而试图检查所提供的加密套件和支持要启用的协议。 - 另请参见:
-
SSLSocket.setEnabledCipherSuites(java.lang.String[])
,SSLSocket.setEnabledProtocols(java.lang.String[])
,SSLSocket.setNeedClientAuth(boolean)
-
SslRMIServerSocketFactory
public SslRMIServerSocketFactory(SSLContext context, String[] enabledCipherSuites, String[] enabledProtocols, boolean needClientAuth) throws IllegalArgumentException
使用指定的
SSLContext
和SSL套接字配置创建新的SslRMIServerSocketFactory
。- 参数
-
context
- 用于创建SSL套接字的SSL上下文。 如果context
为空,则将使用默认值SSLSocketFactory
或默认值SSLServerSocketFactory
来创建SSL套接字。 否则,将使用由SSLContext.getSocketFactory()
或SSLContext.getServerSocketFactory()
返回的套接字工厂。 -
enabledCipherSuites
- 由此工厂创建的服务器套接字接受的SSL连接上启用的所有密码套件的名称,或null
以使用默认启用的密码套件 -
enabledProtocols
- 在此工厂创建的服务器套接字接受的SSL连接上启用的所有协议版本的名称,或null
以使用默认启用的协议版本 -
needClientAuth
-true
要求在此工厂创建的服务器套接字接受的SSL连接上进行客户端身份验证;false
不需要客户端身份验证 - 异常
-
IllegalArgumentException
-当一个或多个被命名的密码套件enabledCipherSuites
参数不被支持,当一个或多个被命名的协议enabledProtocols
参数不支持或者会遇到问题,而试图检查所提供的加密套件和支持要启用的协议。 - 从以下版本开始:
- 1.7
- 另请参见:
-
SSLSocket.setEnabledCipherSuites(java.lang.String[])
,SSLSocket.setEnabledProtocols(java.lang.String[])
,SSLSocket.setNeedClientAuth(boolean)
-
-
方法详细信息
-
getEnabledCipherSuites
public final String[] getEnabledCipherSuites()
返回由此工厂创建的服务器套接字接受的SSL连接上启用的密码套件的名称,如果此工厂使用默认启用的密码套件,则
null
。- 结果
-
启用了一系列密码套件,或
null
- 另请参见:
-
SSLSocket.setEnabledCipherSuites(java.lang.String[])
-
getEnabledProtocols
public final String[] getEnabledProtocols()
返回由此工厂创建的服务器套接字接受的SSL连接上启用的协议版本的名称,如果此工厂使用默认启用的协议版本,则
null
。- 结果
-
启用的协议版本数组,或
null
- 另请参见:
-
SSLSocket.setEnabledProtocols(java.lang.String[])
-
getNeedClientAuth
public final boolean getNeedClientAuth()
如果此工厂创建的服务器套接字接受的SSL连接需要客户端身份验证,则返回
true
。- 结果
-
true
如果需要客户端身份验证 - 另请参见:
-
SSLSocket.setNeedClientAuth(boolean)
-
createServerSocket
public ServerSocket createServerSocket(int port) throws IOException
创建一个服务器套接字,该套接字接受根据此工厂的SSL套接字配置参数配置的SSL连接。
- Specified by:
-
createServerSocket
在界面RMIServerSocketFactory
- 参数
-
port
- 港口号码 - 结果
- 指定端口上的服务器套接字
- 异常
-
IOException
- 如果在创建服务器套接字期间发生I / O错误
-
equals
public boolean equals(Object obj)
指示某个其他对象是否“等于”此对象。
如果两个
SslRMIServerSocketFactory
对象使用相同的SSL上下文和SSL套接字配置参数构造,则它们是相等的。如果子类添加影响相等性的实例状态,则子类应重写此方法(以及
hashCode()
)。- 重写:
-
equals
在类Object
- 参数
-
obj
- 要与之比较的引用对象。 - 结果
-
true
如果此对象与obj参数相同; 否则为false
。 - 另请参见:
-
Object.hashCode()
,HashMap
-
hashCode
public int hashCode()
返回此
SslRMIServerSocketFactory
的哈希码值。- 重写:
-
hashCode
在类Object
- 结果
-
此
SslRMIServerSocketFactory
的哈希码值。 - 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
-