javax.security.sasl

接口
异常
public interface SaslClientFactory

用于创建 SaslClient 实例的接口。实现此接口的类必须是线程安全的,并且可同时处理多个请求。它还必须具有不接受参数的公共构造方法。

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

从以下版本开始:
1.5
另请参见:
SaslClient, Sasl

方法摘要
 SaslClient createSaslClient(String[] mechanisms, String authorizationId, String protocol, String serverName, Map<String,?> props, CallbackHandler cbh)
          使用提供的参数创建 SaslClient。
 String[] getMechanismNames(Map<String,?> props)
          返回与指定的机制选择策略相符的机制的名称数组。
 

方法详细信息

createSaslClient

SaslClient createSaslClient(String[] mechanisms,
                            String authorizationId,
                            String protocol,
                            String serverName,
                            Map<String,?> props,
                            CallbackHandler cbh)
                            throws SaslException
使用提供的参数创建 SaslClient。

参数:
mechanisms - 要试用的机制名称的非 null 列表。每个名称都是 SASL 机制的 IANA 注册名。(例如 "GSSAPI"、"CRAM-MD5")。
authorizationId - 用于授权的标识,可能为 null,与协议有关。如果为 null 或空,则服务器根据客户端的验证证书派生出一个授权 ID。SASL 验证成功完成后,就允许指定的实体进行访问。
protocol - 非 null 的协议(例如 "ldap")字符串名,将为它执行验证。
serverName - 服务器的非 null 完全限定主机名,要对该服务器进行验证。
props - 可能为 null 的属性集,用于选择 SASL 机制并配置所选机制的验证交换。有关标准属性的列表,请参阅 Sasl 类。也可包括其他可能特定于机制的属性。忽略与所选机制无关的属性,包括带有非字符串键的所有映射条目。
cbh - SASL 机制使用的回调处理程序(可能为 null),以便为完成验证而从应用程序/库获得更多的信息。例如,SASL 机制可能需要从调用者获得验证 ID、密码和领域。使用 NameCallback 来请求验证 ID。使用 PasswordCallback 来请求密码。如果要从领域列表中选择,则使用 RealmChoiceCallback 来请求领域,如果必须输入领域,则使用 RealmCallback 来请求领域。
返回:
使用所提供参数创建的 SaslClient,可能为 null。如果为 null,则此工厂无法使用所提供的参数生成 SaslClient
抛出:
SaslException - 如果因为错误而无法创建 SaslClient

getMechanismNames

String[] getMechanismNames(Map<String,?> props)
返回与指定的机制选择策略相符的机制的名称数组。

参数:
props - 可能为 null 的属性集,用于指定 SASL 机制的安全策略。例如,如果 props 包含值为 "true" 的属性 Sasl.POLICY_NOPLAINTEXT,则该工厂必须不返回任何易于受到简单被动式攻击危害的 SASL 机制。有关策略属性的完整列表,请参阅 Sasl 类。如果 props 中有与策略无关的属性则忽略该属性,包括带有非字符串键的所有映射条目。
返回:
非 null 的数组,包含 IANA 注册的 SASL 机制名。