public interface SaslClientFactory
用于创建 SaslClient 实例的接口。实现此接口的类必须是线程安全的,并且可同时处理多个请求。它还必须具有不接受参数的公共构造方法。
客户端通常不直接访问此接口,而是使用 Sasl 静态方法访问此接口。但是,特定的环境可以提供和安装一个新的或不同的 SaslClientFactory。
SaslClient
,
Sasl
方法摘要 | |
---|---|
SaslClient |
createSaslClient(String[] mechanisms, String authorizationId, String protocol, String serverName, Map<String,?> props, CallbackHandler cbh) 使用提供的参数创建 SaslClient。 |
String[] |
getMechanismNames(Map<String,?> props) 返回与指定的机制选择策略相符的机制的名称数组。 |
方法详细信息 |
---|
SaslClient createSaslClient(String[] mechanisms, String authorizationId, String protocol, String serverName, Map<String,?> props, CallbackHandler cbh) throws SaslException
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 来请求领域。
SaslException
- 如果因为错误而无法创建
SaslClient。
String[] getMechanismNames(Map<String,?> props)
props
- 可能为 null 的属性集,用于指定 SASL 机制的安全策略。例如,如果
props 包含值为
"true" 的属性
Sasl.POLICY_NOPLAINTEXT,则该工厂必须不返回任何易于受到简单被动式攻击危害的 SASL 机制。有关策略属性的完整列表,请参阅
Sasl 类。如果
props 中有与策略无关的属性则忽略该属性,包括带有非字符串键的所有映射条目。