public class SslRMIClientSocketFactory extends Object implements RMIClientSocketFactory, Serializable
一个SslRMIClientSocketFactory
实例由RMI运行时使用,以便通过SSL获取RMI调用的客户端套接字。
这个类实现RMIClientSocketFactory
通过安全套接字层(SSL)或传输层安全(TLS)协议。
此类使用默认值SSLSocketFactory
创建SSL套接字(请参阅SSLSocketFactory.getDefault()
)。 该类的所有实例在功能上相当。 特别地,当服务器需要客户端认证时,它们都共享相同的信任库,同样的密钥库。 可以通过覆盖createSocket(String,int)
方法在子类中修改此行为; 在这种情况下, equals
和hashCode
也可能需要被覆盖。
如果系统属性javax.rmi.ssl.client.enabledCipherSuites
被指定, createSocket(String,int)
方法将调用SSLSocket.setEnabledCipherSuites(String[])
返回套接字之前。 该系统属性的值是一个字符串,是要启用的SSL / TLS密码套件的逗号分隔列表。
如果系统属性javax.rmi.ssl.client.enabledProtocols
被指定, createSocket(String,int)
方法将调用SSLSocket.setEnabledProtocols(String[])
返回套接字之前。 此系统属性的值是一个字符串,是一个逗号分隔的SSL / TLS协议版本列表。
SSLSocketFactory
, SslRMIServerSocketFactory
, Serialized Form
Constructor and Description |
---|
SslRMIClientSocketFactory()
创建一个新的
SslRMIClientSocketFactory 。
|
public SslRMIClientSocketFactory()
创建一个新的SslRMIClientSocketFactory
。
public Socket createSocket(String host, int port) throws IOException
创建一个SSL套接字。
如果指定了系统属性javax.rmi.ssl.client.enabledCipherSuites
,则此方法将在返回套接字之前调用SSLSocket.setEnabledCipherSuites(String[])
。 该系统属性的值是一个字符串,是要启用的SSL / TLS密码套件的逗号分隔列表。
如果指定了系统属性javax.rmi.ssl.client.enabledProtocols
,则此方法将在返回套接字之前调用SSLSocket.setEnabledProtocols(String[])
。 此系统属性的值是一个字符串,是一个逗号分隔的SSL / TLS协议版本列表。
createSocket
在界面
RMIClientSocketFactory
host
- 主机名
port
- 端口号
IOException
- 如果套接字创建期间发生I / O错误
public boolean equals(Object obj)
指示一些其他对象是否等于此。
因为这个类的所有实例在功能上是等同的(它们都使用默认的SSLSocketFactory
),所以这个方法只返回this.getClass().equals(obj.getClass())
。
一个子类应该覆盖这个方法(以及hashCode()
),如果它的实例并不都在功能上等同。
equals
在类别
Object
obj
- 与之比较的参考对象。
true
如果该对象与obj参数相同;
false
否则。
Object.hashCode()
, HashMap
public int hashCode()
返回此SslRMIClientSocketFactory
的哈希码值。
hashCode
在类别
Object
SslRMIClientSocketFactory
的哈希码值。
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)