public interface SaslClientFactory
一个用于创建
SaslClient
实例的接口。实现此接口的类必须是线程安全的,并且能够处理多个同时的请求。它还必须有一个公共的无参构造函数。
通常客户端不会直接访问此接口,而是使用Sasl
静态方法。然而,特定环境可能会提供并安装一个新的或不同的SaslClientFactory
。
- 自版本:
- 1.5
- 参见:
-
Method Summary
Modifier and TypeMethodDescriptioncreateSaslClient
(String[] mechanisms, String authorizationId, String protocol, String serverName, Map<String, ?> props, CallbackHandler cbh) 使用提供的参数创建一个SaslClient。String[]
getMechanismNames
(Map<String, ?> props) 返回与指定机制选择策略匹配的机制名称数组。
-
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
返回与指定机制选择策略匹配的机制名称数组。- 参数:
-
props
- 用于指定SASL机制安全策略的可能为空属性集。例如,如果props
包含具有值"true"
的Sasl.POLICY_NOPLAINTEXT
属性,则工厂不得返回任何容易受到简单明文袭击的SASL机制。查看Sasl
类以获取完整的策略属性列表。如果props
中存在与非策略相关的属性,则将被忽略,包括任何具有非String键的映射条目。 - 返回:
- 包含IANA注册的SASL机制名称的非空数组。
-