Interface ServerAuthenticationProvider
- All Known Implementing Classes:
SimpleServerAuthenticationProvider
public interface ServerAuthenticationProvider
- Author:
- Darran Lofthouse, Tristan Tarrant
-
Method Summary
Modifier and TypeMethodDescriptiondefault SaslServercreateSaslServer(String mechanism, List<Principal> principals, String protocol, String serverName, Map<String, String> props) Create a SaslServer, to be used for a single authentication session, for the specified mechanismName.default AuthorizingCallbackHandlergetCallbackHandler(String mechanismName, Map<String, String> mechanismProperties) Deprecated, for removal: This API element is subject to removal in a future version.This method will no longer be invoked directly.
-
Method Details
-
getCallbackHandler
@Deprecated(forRemoval=true) default AuthorizingCallbackHandler getCallbackHandler(String mechanismName, Map<String, String> mechanismProperties) Deprecated, for removal: This API element is subject to removal in a future version.This method will no longer be invoked directly. Implement the#createSaslServer(String, List, String, String, Map, ClassLoader)method instead.Get a callback handler for the given mechanism name.This method is called each time a mechanism is selected for the connection and the resulting AuthorizingCallbackHandler will be cached and used multiple times for this connection, AuthorizingCallbackHandler should either be thread safe or the ServerAuthenticationProvider should provide a new instance each time called.
- Parameters:
mechanismName- the SASL mechanism to get a callback handler formechanismProperties- the mechanism properties that might need to be adjusted to support the specific mechanism / callbackhandler combination- Returns:
- the callback handler or
nullif the mechanism is not supported
-
createSaslServer
default SaslServer createSaslServer(String mechanism, List<Principal> principals, String protocol, String serverName, Map<String, String> props) throws SaslExceptionCreate a SaslServer, to be used for a single authentication session, for the specified mechanismName. On completion of the SASL authentication exchange, the SaslServer MUST provide a non-read-only negotiatedSubjectwhenSaslServer.getNegotiatedProperty(String)is invoked with theSubjectSaslServer.SUBJECTproperty. The default implementation of this method wraps any matchingSaslServerFactorywith aSubjectSaslServerto transparently supply the resolved Subject.- Parameters:
mechanism- The non-null IANA-registered name of a SASL mechanism. (e.g. "GSSAPI", "CRAM-MD5").principals- Any principals which can be obtained before the authentication (e.g. TLS peer, remote network address). Can be empty.protocol- The non-null string name of the protocol for which the authentication is being performed (e.g., "ldap").serverName- The fully qualified host name of the server to authenticate to, or null if the server is not bound to any specific host name. If the mechanism does not allow an unbound server, aSaslExceptionwill be thrown.props- The possibly null set of properties used to select the SASL mechanism and to configure the authentication exchange of the selected mechanism. See theSaslclass for a list of standard properties. Other, possibly mechanism-specific, properties can be included. Properties not relevant to the selected mechanism are ignored, including any map entries with non-String keys.- Returns:
- an instance of SaslServer (or null if it cannot be created)
- Throws:
SaslException
-