- java.lang.Object
-
- javax.rmi.ssl.SslRMIServerSocketFactory
-
- All Implemented Interfaces:
-
RMIServerSocketFactory
public class SslRMIServerSocketFactory extends Object implements RMIServerSocketFactory
一个
SslRMIServerSocketFactory实例由RMI运行时使用,以便通过SSL获取用于RMI调用的服务器套接字。该类通过安全套接字层(SSL)或传输层安全(TLS)协议实现
RMIServerSocketFactory。此类使用默认的
SSLSocketFactory(见SSLSocketFactory.getDefault())或默认的SSLServerSocketFactory(请参阅SSLServerSocketFactory.getDefault())创建SSL套接字,除非使用构造函数使用SSLContext,在这种情况下,使用SSLSocketFactory返回的SSLSocketFactory或SSLServerSocketFactory返回的SSLServerSocketFactory创建SSL套接字。 当不提供SSLContext时,SSLContext所有实例共享相同的密钥库和相同的信任库(服务器需要客户端认证时)。 可以通过提供已初始化的SSLContext实例来修改此行为。- 从以下版本开始:
- 1.5
- 另请参见:
-
SSLSocketFactory,SSLServerSocketFactory,SslRMIClientSocketFactory
-
-
构造方法摘要
构造方法 Constructor 描述 SslRMIServerSocketFactory()创建一个新的SslRMIServerSocketFactory与默认SSL套接字配置。SslRMIServerSocketFactory(String[] enabledCipherSuites, String[] enabledProtocols, boolean needClientAuth)使用指定的SSL套接字配置创建一个新的SslRMIServerSocketFactory。SslRMIServerSocketFactory(SSLContext context, String[] enabledCipherSuites, String[] enabledProtocols, boolean needClientAuth)创建一个新的SslRMIServerSocketFactory与指定的SSLContext和SSL套接字配置。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 ServerSocketcreateServerSocket(int port)创建一个服务器套接字,接受根据本工厂的SSL套接字配置参数配置的SSL连接。booleanequals(Object obj)指示一些其他对象是否等于此。String[]getEnabledCipherSuites()返回由本厂创建的服务器套接字接受的SSL连接启用的密码套件的名称,如果此工厂使用默认启用的密码套件,则null。String[]getEnabledProtocols()返回由此工厂创建的服务器套接字接受的SSL连接启用的协议版本的名称,如果此工厂使用默认启用的协议版本,则null。booleangetNeedClientAuth()如果在此工厂创建的服务器套接字所接受的SSL连接上需要客户端验证,则返回true。inthashCode()返回此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
创建一个新的
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参数不支持或者会遇到问题,而试图检查所提供的加密套件和支持启用协议。 - 从以下版本开始:
- 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- 与之比较的参考对象。 - 结果
-
如果此对象与obj参数相同,
true; 否则为false。 - 另请参见:
-
Object.hashCode(),HashMap
-
hashCode
public int hashCode()
返回此
SslRMIServerSocketFactory的哈希码值。- 重写:
-
hashCode在Object - 结果
-
这个
SslRMIServerSocketFactory的哈希码值。 - 另请参见:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
-
-