package org.infinispan.server.core.security.external;
import java.security.Principal;
import java.util.Map;
import javax.security.auth.callback.CallbackHandler;
import javax.security.sasl.SaslException;
import javax.security.sasl.SaslServer;
import javax.security.sasl.SaslServerFactory;
public final class ExternalSaslServerFactory implements SaslServerFactory {
public static final String[] NAMES = new String[]{"EXTERNAL"};
private final Principal peerPrincipal;
public ExternalSaslServerFactory(final Principal peerPrincipal) {
this.peerPrincipal = peerPrincipal;
}
public SaslServer createSaslServer(final String mechanism, final String protocol, final String serverName,
final Map<String, ?> props, final CallbackHandler cbh) throws SaslException {
return new ExternalSaslServer(cbh, peerPrincipal);
}
public String[] getMechanismNames(final Map<String, ?> props) {
return NAMES;
}
}