package org.infinispan.server.core.security; import java.util.Map; /** * @author <a href="mailto:darran.lofthouse@jboss.com">Darran Lofthouse</a> * @author Tristan Tarrant */ public interface ServerAuthenticationProvider { /** * 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. * * @param mechanismName * the SASL mechanism to get a callback handler for * @param mechanismProperties * the mechanism properties that might need to be adjusted to support the specific mechanism / callbackhandler combination * @return the callback handler or {@code null} if the mechanism is not supported */ AuthorizingCallbackHandler getCallbackHandler(String mechanismName, Map<String, String> mechanismProperties); }