public class SslRMIServerSocketFactory extends Object implements RMIServerSocketFactory
一个SslRMIServerSocketFactory
实例由RMI运行时使用,以通过SSL获得用于RMI调用的服务器套接字。
这个类实现RMIServerSocketFactory
通过安全套接字层(SSL)或传输层安全(TLS)协议。
除非使用SSLContext的SSLContext
,否则使用默认值SSLSocketFactory
(请参阅SSLSocketFactory.getDefault()
)或默认值SSLServerSocketFactory
(请参阅88502243897861 )创建SSL套接字,在这种情况下,使用SSLSocketFactory
返回的SSLSocketFactory或SSLServerSocketFactory
返回的SSLServerSocketFactory创建SSL套接字。 当SSLContext
不供给的这个类共享所有的实例相同的密钥库,和相同的信任(当由服务器所需的客户端身份验证)。 可以通过提供已初始化的SSLContext
实例来修改此行为。
SSLSocketFactory
, SSLServerSocketFactory
, SslRMIClientSocketFactory
Constructor and Description |
---|
SslRMIServerSocketFactory()
创建一个新的
SslRMIServerSocketFactory 与默认的SSL套接字配置。
|
SslRMIServerSocketFactory(SSLContext context, String[] enabledCipherSuites, String[] enabledProtocols, boolean needClientAuth)
创建一个新的
SslRMIServerSocketFactory 与指定的
SSLContext 和SSL套接字配置。
|
SslRMIServerSocketFactory(String[] enabledCipherSuites, String[] enabledProtocols, boolean needClientAuth)
创建一个新
SslRMIServerSocketFactory 使用指定的SSL套接字配置。
|
Modifier and Type | Method and Description |
---|---|
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 的哈希码值。
|
public SslRMIServerSocketFactory()
创建一个新的SslRMIServerSocketFactory
与默认SSL套接字配置。
由本厂创建的服务器套接字接受的SSL连接启用默认的密码套件和协议版本,不需要客户端认证。
public SslRMIServerSocketFactory(String[] enabledCipherSuites, String[] enabledProtocols, boolean needClientAuth) throws IllegalArgumentException
创建一个新SslRMIServerSocketFactory
使用指定的SSL套接字配置。
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)
public SslRMIServerSocketFactory(SSLContext context, String[] enabledCipherSuites, String[] enabledProtocols, boolean needClientAuth) throws IllegalArgumentException
创建一个新的SslRMIServerSocketFactory
与指定的SSLContext
和SSL套接字配置。
context
- 用于创建SSL套接字的SSL上下文。
如果context
为空,则默认值为SSLSocketFactory
或默认值为SSLServerSocketFactory
将用于创建SSL套接字。
否则,将使用SSLContext.getSocketFactory()
或SSLContext.getServerSocketFactory()
返回的套接字工厂。
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)
public final String[] getEnabledCipherSuites()
返回由本厂创建的服务器套接字接受的SSL连接启用的密码套件的名称,如果此工厂使用默认启用的密码套件,则null
。
null
SSLSocket.setEnabledCipherSuites(java.lang.String[])
public final String[] getEnabledProtocols()
返回由此工厂创建的服务器套接字接受的SSL连接启用的协议版本的名称,如果此工厂使用默认启用的协议版本,则null
。
null
SSLSocket.setEnabledProtocols(java.lang.String[])
public final boolean getNeedClientAuth()
如果在此工厂创建的服务器套接字所接受的SSL连接上需要客户端验证,则返回true
。
true
如果需要客户端身份验证
SSLSocket.setNeedClientAuth(boolean)
public ServerSocket createServerSocket(int port) throws IOException
创建一个服务器套接字,接受根据本工厂的SSL套接字配置参数配置的SSL连接。
createServerSocket
在界面
RMIServerSocketFactory
port
- 端口号
IOException
- 如果在创建服务器套接字期间发生I / O错误
public boolean equals(Object obj)
指示一些其他对象是否等于此。
如果两个SslRMIServerSocketFactory
对象使用相同的SSL上下文和SSL套接字配置参数构造,则相等。
一个子类应该覆盖这个方法(以及hashCode()
),如果它添加了影响相等性的实例状态。
equals
在类别
Object
obj
- 与之比较的参考对象。
true
如果此对象与obj参数相同;
false
否则。
Object.hashCode()
, HashMap
public int hashCode()
返回此SslRMIServerSocketFactory
的哈希码值。
hashCode
在类别
Object
SslRMIServerSocketFactory
的哈希码值。
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)