java.lang.Object javax.security.sasl.Sasl
public class Sasl
用于创建 SASL 客户端和服务器的静态类。
此类定义了如何查找、加载和实例化 SASL 客户端和服务器的策略。
例如,通过执行以下操作,应用程序或库可获得 SASL 客户端:
然后该程序可继续使用该实例来创建验证连接。SaslClient sc = Sasl.createSaslClient(mechanisms, authorizationId, protocol, serverName, props, callbackHandler);
类似地,服务器可使用下列代码来获得 SASL 服务器:
SaslServer ss = Sasl.createSaslServer(mechanism, protocol, serverName, props, callbackHandler);
字段摘要 | |
---|---|
static String |
CREDENTIALS 属性的名称,它指定要使用的证书。 |
static String |
MAX_BUFFER 属性名,指定 SaslClient/SaslServer 接收缓冲区的最大大小(以字节为单位)。 |
static String |
POLICY_FORWARD_SECRECY 属性名,指定是否需要在会话间实现了转发安全性的机制。 |
static String |
POLICY_NOACTIVE 属性名,指定是否允许易受主动式攻击(非字典)的机制。 |
static String |
POLICY_NOANONYMOUS 属性名,指定是否允许接受匿名登录的机制。 |
static String |
POLICY_NODICTIONARY 属性名,指定是否允许易受被动式字典攻击的机制。 |
static String |
POLICY_NOPLAINTEXT 属性名,指定是否允许易受简单被动式攻击(例如 "PLAIN")的机制。 |
static String |
POLICY_PASS_CREDENTIALS 属性名,指定是否需要传递客户端证书的机制。 |
static String |
QOP 属性名,指定要使用的保护级别。 |
static String |
RAW_SEND_SIZE 属性名,指定 SaslClient/SaslServer 初始发送缓冲区的最大大小(以字节为单位)。 |
static String |
REUSE 属性名,指定是否重用以前已验证过的会话信息。 |
static String |
SERVER_AUTH 属性名,指定服务器是否必须验证客户端。 |
static String |
STRENGTH 属性名,指定要使用的密码强度。 |
方法摘要 | |
---|---|
static SaslClient |
createSaslClient(String[] mechanisms, String authorizationId, String protocol, String serverName, Map<String,?> props, CallbackHandler cbh) 使用提供的参数创建 SaslClient。 |
static SaslServer |
createSaslServer(String mechanism, String protocol, String serverName, Map<String,?> props, CallbackHandler cbh) 为指定机制创建一个 SaslServer。 |
static Enumeration<SaslClientFactory> |
getSaslClientFactories() 获得用于生成 SaslClient 的已知工厂的枚举。 |
static Enumeration<SaslServerFactory> |
getSaslServerFactories() 获得用于生成 SaslServer 的已知工厂的枚举。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
字段详细信息 |
---|
public static final String QOP
public static final String STRENGTH
public static final String SERVER_AUTH
public static final String MAX_BUFFER
public static final String RAW_SEND_SIZE
public static final String REUSE
public static final String POLICY_NOPLAINTEXT
public static final String POLICY_NOACTIVE
public static final String POLICY_NODICTIONARY
public static final String POLICY_NOANONYMOUS
public static final String POLICY_FORWARD_SECRECY
public static final String POLICY_PASS_CREDENTIALS
public static final String CREDENTIALS
方法详细信息 |
---|
public static SaslClient createSaslClient(String[] mechanisms, String authorizationId, String protocol, String serverName, Map<String,?> props, CallbackHandler cbh) throws SaslException
SaslClientFactory 的安全提供者向 JCA Security Provider Framework 注册以下形式的键:
SaslClientFactory.机制名
和值(即 javax.security.sasl.SaslClientFactory 实现的类名)。 例如,一个包含工厂类 com.wiz.sasl.digest.ClientFactory(支持 "DIGEST-MD5" 机制)的提供者将向 JCA 注册以下项:SaslClientFactory.DIGEST-MD5 com.wiz.sasl.digest.ClientFactory
有关如何安装和配置安全服务提供者的信息,请参阅 "Java Cryptography Architecture API Specification & Reference"。
mechanisms
- 要试用的机制名的非 null 列表。每个名称都是 SASL 机制的 IANA 注册名。(例如 "GSSAPI"、"CRAM-MD5")。
authorizationId
- 与协议有关可能为 null 的用于授权的标识。如果为 null 或空,则服务器根据客户端的验证证书派生出一个授权 ID。SASL 验证成功完成后,就允许指定的实体访问。
protocol
- 非 null 的协议(例如 "ldap")字符串名,将用它执行验证。
serverName
- 服务器的非 null 完全限定主机名,要向该服务器进行验证。
props
- 可能为 null 的属性集,用于选择 SASL 机制并配置所选机制的验证交换。例如,如果
props 包含
Sasl.POLICY_NOPLAINTEXT
属性,且属性值为
"true",则所选的 SASL 机制必须不易受到简单被动式攻击的影响。除了在此类中所声明的标准属性外,也可以包括其他的可能特定于机制的属性。忽略与所选机制无关的属性,包括带有非字符串关键字的所有映射项。
cbh
- SASL 机制使用的回调处理程序(可能为 null),以便为完成验证而从应用程序/库获得更多的信息。例如,SASL 机制可能需要从调用者获得验证 ID、密码和域。使用
NameCallback 来请求验证 ID。使用
PasswordCallback 来请求密码。如果要从域列表中选择,则使用
RealmChoiceCallback 来请求域,如果必须输入域,则使用
RealmCallback 来请求域。
SaslException
- 如果因为错误而无法创建
SaslClient。
public static SaslServer createSaslServer(String mechanism, String protocol, String serverName, Map<String,?> props, CallbackHandler cbh) throws SaslException
SaslServerFactory 的安全提供者向 JCA Security Provider Framework 注册以下形式的键:
SaslServerFactory.机制名
和值(即 javax.security.sasl.SaslServerFactory 实现的类名)。 例如,一个包含工厂类 com.wiz.sasl.digest.ServerFactory(支持 "DIGEST-MD5" 机制)的提供者将向 JCA 注册以下项: SaslServerFactory.DIGEST-MD5 com.wiz.sasl.digest.ServerFactory
有关如何安装和配置安全服务提供者的信息,请参阅 "Java Cryptography Architecture API Specification & Reference"。
mechanism
- 非 null 的机制名。它必须是 SASL 机制的 IANA 注册名。(例如 "GSSAPI"、"CRAM-MD5")。
protocol
- 非 null 的协议(例如 "ldap")字符串名,将为它执行验证。
serverName
- 服务器的非 null 完全限定主机名。
props
- 可能为 null 的属性集,用于选择 SASL 机制并配置所选机制的验证交换。例如,如果
props 包含
Sasl.POLICY_NOPLAINTEXT
属性,且属性值为
"true",则所选的 SASL 机制必须不易受到简单被动式攻击的危害。除了在此类中所声明的标准属性外,也可以包括其他的可能特定于机制的属性。忽略与所选机制无关的属性,包括带有非字符串关键字的所有映射项。
cbh
- SASL 机制使用的回调处理程序(可能为 null),以便为完成验证而从应用程序/库获得更多的信息。例如,SASL 机制可能需要从调用者获得验证 ID、密码和域。使用
NameCallback 来请求验证 ID。使用
PasswordCallback 来请求密码。如果要从域列表中选择,则使用
RealmChoiceCallback 来请求域,如果必须输入域,则使用
RealmCallback 来请求域。
SaslException
- 如果因为错误而无法创建
SaslServer。
public static Enumeration<SaslClientFactory> getSaslClientFactories()
createSaslClient(java.lang.String[], java.lang.String, java.lang.String, java.lang.String, java.util.Map
, javax.security.auth.callback.CallbackHandler)
public static Enumeration<SaslServerFactory> getSaslServerFactories()
createSaslServer(java.lang.String, java.lang.String, java.lang.String, java.util.Map
, javax.security.auth.callback.CallbackHandler)