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