Interface SaslServerFactory


public interface SaslServerFactory
用于创建SaslServer实例的接口。实现此接口的类必须是线程安全的,并且能够处理多个同时的请求。它还必须有一个不接受参数的公共构造函数。

通常服务器不会直接访问此接口,而是使用Sasl静态方法。但是,特定环境可能会提供并安装一个新的或不同的SaslServerFactory

自从:
1.5
参见:
  • Method Details

    • createSaslServer

      SaslServer createSaslServer(String mechanism, String protocol, String serverName, Map<String,?> props, CallbackHandler cbh) throws SaslException
      使用提供的参数创建一个SaslServer。如果无法使用提供的参数创建SaslServer,则返回null。如果由于错误而无法创建SaslServer,则抛出SaslException
      参数:
      mechanism - 非空的SASL机制的IANA注册名称(例如,"GSSAPI","CRAM-MD5")。
      protocol - 正在执行身份验证的协议的非空字符串名称(例如,"ldap")。
      serverName - 要进行身份验证的服务器的完全限定主机名,如果服务器未绑定到任何特定主机名,则为null。如果机制不允许未绑定服务器,则会抛出SaslException
      props - 用于选择SASL机制并配置所选机制的身份验证交换的可能为空的属性集。请参阅Sasl类以获取标准属性列表。其他可能是特定于机制的属性也可以包括在内。与所选机制无关的属性将被忽略,包括任何具有非String键的映射条目。
      cbh - 可能为空的回调处理程序,由SASL机制用于从应用程序/库中获取更多信息以完成身份验证。例如,SASL机制可能需要调用者提供身份验证ID、密码和领域。通过使用NameCallback请求身份验证ID。通过使用PasswordCallback请求密码。如果有要选择的领域列表,则通过使用RealmChoiceCallback请求领域,如果必须输入领域,则通过使用RealmCallback请求领域。
      返回:
      使用提供的参数创建的可能为空的SaslServer。如果为null,则此工厂无法使用提供的参数生成SaslServer
      抛出:
      SaslException - 如果由于错误而无法创建SaslServer
    • getMechanismNames

      String[] getMechanismNames(Map<String,?> props)
      返回与指定机制选择策略匹配的机制名称数组。
      参数:
      props - 用于指定SASL机制安全策略的可能为空的属性集。例如,如果props包含具有值"true"Sasl.POLICY_NOPLAINTEXT属性,则工厂不得返回任何容易受到简单明文被动攻击的SASL机制。请参阅Sasl类以获取完整的策略属性列表。如果在props中存在与非策略相关的属性,则将被忽略,包括任何具有非String键的映射条目。
      返回:
      包含IANA注册的SASL机制名称的非空数组。