Interface SaslClientFactory


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

通常客户端不会直接访问此接口,而是使用Sasl静态方法。然而,特定环境可能会提供并安装一个新的或不同的SaslClientFactory

自版本:
1.5
参见:
  • Method Details

    • createSaslClient

      SaslClient createSaslClient(String[] mechanisms, String authorizationId, String protocol, String serverName, Map<String,?> props, CallbackHandler cbh) throws SaslException
      使用提供的参数创建一个SaslClient。
      参数:
      mechanisms - 要尝试的机制名称的非空列表。每个都是一个SASL机制的IANA注册名称(例如"GSSAPI","CRAM-MD5")。
      authorizationId - 用于授权的可能为空的协议相关标识。如果为null或空,服务器将从客户端的身份验证凭据中派生授权ID。当SASL身份验证成功完成时,授予指定实体访问权限。
      protocol - 正在执行身份验证的协议的非空字符串名称(例如"ldap")。
      serverName - 要进行身份验证的服务器的非空完全限定主机名。
      props - 用于选择SASL机制和配置所选机制的身份验证交换的可能为空属性集。查看Sasl类以获取标准属性列表。其他可能是特定于机制的属性也可以包括在内。与所选机制无关的属性将被忽略,包括任何具有非String键的映射条目。
      cbh - 用于由SASL机制从应用程序/库中获取更多信息以完成身份验证的可能为空的回调处理程序。例如,SASL机制可能需要调用者的身份验证ID、密码和领域。通过使用NameCallback请求身份验证ID。通过使用PasswordCallback请求密码。如果有一个可供选择的领域列表,则通过使用RealmChoiceCallback请求领域,如果必须输入领域,则通过使用RealmCallback请求领域。
      返回:
      使用提供的参数创建的可能为空的SaslClient。如果为null,则此工厂无法使用提供的参数生成SaslClient
      抛出:
      SaslException - 由于错误而无法创建SaslClient
    • getMechanismNames

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