javax.security.sasl
public interface SaslClientFactory
An interface for creating instances of SaslClient. A class that implements this interface must be thread-safe and handle multiple simultaneous requests. It must also have a public constructor that accepts no arguments.
This interface is not normally accessed directly by a client, which will
use the Sasl static methods to create a client instance instead.
However, a particular environment may provide and install a new or different
SaslClientFactory
.
Since: 1.5
See Also: SaslClient
Method Summary | |
---|---|
SaslClient | createSaslClient(String[] mechanisms, String authorizationID, String protocol, String serverName, Map<String,?> props, CallbackHandler cbh)
Creates a SaslClient using the parameters supplied.
|
String[] | getMechanismNames(Map<String,?> props)
Returns an array of names of mechanisms that match the specified mechanism
selection policies.
|
Parameters: mechanisms the non-null list of mechanism names to try. Each is the
IANA-registered name of a SASL mechanism (e.g. "GSSAPI", "CRAM-MD5"). authorizationID the possibly null protocol-dependent identification
to be used for authorization. If null
or empty, the server
derives an authorization ID from the client's authentication credentials.
When the SASL authentication completes successfully, the specified entity
is granted access. protocol the non-null string name of the protocol for which the
authentication is being performed (e.g. "ldap"). serverName the non-null fully qualified host name of the server to
authenticate to. props the possibly null
set of properties used to
select the SASL mechanism and to configure the authentication exchange of
the selected mechanism. See the Sasl class for a list of standard
properties. Other, possibly mechanism-specific, properties can be included.
Properties not relevant to the selected mechanism are ignored. cbh the possibly null
callback handler to used by the
SASL mechanisms to get further information from the application/library to
complete the authentication. For example, a SASL mechanism might require
the authentication ID, password and realm from the caller. The
authentication ID is requested by using a
javax.security.auth.callback.NameCallback. The password is
requested by using a javax.security.auth.callback.PasswordCallback.
The realm is requested by using a RealmChoiceCallback if there is
a list of realms to choose from, and by using a RealmCallback if
the realm must be entered.
Returns: a possibly null
SaslClient created using the
parameters supplied. If null
, this factory cannot produce a
SaslClient using the parameters supplied.
Throws: SaslException if a SaslClient instance cannot be created because of an error.
Parameters: props the possibly null
set of properties used to
specify the security policy of the SASL mechanisms. For example, if props
contains the POLICY_NOPLAINTEXT property with the value
"true"
, then the factory must not return any SASL mechanisms
that are susceptible to simple plain passive attacks. See the Sasl
class for a complete list of policy properties. Non-policy related
properties, if present in props, are ignored.
Returns: a non-null array containing IANA-registered SASL mechanism names.