Module java.rmi
Package javax.rmi.ssl

Class SslRMIServerSocketFactory

java.lang.Object
javax.rmi.ssl.SslRMIServerSocketFactory
所有已实现的接口:
RMIServerSocketFactory

public class SslRMIServerSocketFactory extends Object implements RMIServerSocketFactory

SslRMIServerSocketFactory实例被RMI运行时用于通过SSL获取RMI调用的服务器套接字。

此类通过安全套接字层(SSL)或传输层安全性(TLS)协议实现RMIServerSocketFactory

此类使用默认的SSLSocketFactory(参见SSLSocketFactory.getDefault())或默认的SSLServerSocketFactory(参见SSLServerSocketFactory.getDefault())创建SSL套接字,除非使用带有SSLContext的构造函数,在这种情况下,SSL套接字是使用SSLContext.getSocketFactory()返回的SSLSocketFactorySSLContext.getServerSocketFactory()返回的SSLServerSocketFactory创建的。当未提供SSLContext时,此类的所有实例共享相同的密钥库和信任库(服务器需要客户端身份验证时)。通过提供已初始化的SSLContext实例可以修改此行为。

自从:
1.5
参见:
  • Constructor Summary

    Constructors
    Constructor
    Description
    创建一个具有默认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 Type
    Method
    Description
    createServerSocket(int port)
    创建一个服务器套接字,根据此工厂的SSL套接字配置参数接受SSL连接。
    boolean
    equals(Object obj)
    指示某个对象是否与此对象"相等"。
    final String[]
    返回此工厂创建的服务器套接字上接受的SSL连接上启用的密码套件的名称,如果此工厂使用默认启用的密码套件,则返回null
    final String[]
    返回此工厂创建的服务器套接字上接受的SSL连接上启用的协议版本的名称,如果此工厂使用默认启用的协议版本,则返回null
    final boolean
    返回此工厂创建的服务器套接字上接受的SSL连接是否需要客户端身份验证。
    int
    返回此SslRMIServerSocketFactory的哈希码值。

    Methods declared in class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
  • 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

      public final String[] getEnabledCipherSuites()

      返回此工厂创建的服务器套接字上接受的SSL连接上启用的密码套件的名称,如果此工厂使用默认启用的密码套件,则返回null

      返回:
      启用的密码套件的数组,或null
      参见:
    • getEnabledProtocols

      public final String[] getEnabledProtocols()

      返回此工厂创建的服务器套接字上接受的SSL连接上启用的协议版本的名称,如果此工厂使用默认启用的协议版本,则返回null

      返回:
      启用的协议版本的数组,或null
      参见:
    • getNeedClientAuth

      public final boolean getNeedClientAuth()

      返回此工厂创建的服务器套接字上接受的SSL连接是否需要客户端身份验证。

      返回:
      如果需要客户端身份验证,则返回true
      参见:
    • createServerSocket

      public ServerSocket createServerSocket(int port) throws IOException

      创建一个根据此工厂的SSL套接字配置参数配置的接受SSL连接的服务器套接字。

      指定者:
      createServerSocket 在接口 RMIServerSocketFactory
      参数:
      port - 端口号
      返回:
      指定端口上的服务器套接字
      抛出:
      IOException - 如果在创建服务器套接字期间发生I/O错误
    • equals

      public boolean equals(Object obj)

      指示某个对象是否与此对象"相等"。

      如果两个SslRMIServerSocketFactory对象使用相同的SSL上下文和SSL套接字配置参数构造,则它们相等。

      如果子类添加了影响相等性的实例状态,则应重写此方法(以及hashCode())。

      覆盖:
      equals 在类 Object
      参数:
      obj - 用于比较的参考对象。
      返回:
      如果此对象与obj参数相同,则返回true; 否则返回false
      参见:
    • hashCode

      public int hashCode()

      返回此SslRMIServerSocketFactory的哈希码值。

      覆盖:
      hashCode 在类 Object
      返回:
      SslRMIServerSocketFactory的哈希码值。
      参见: