package org.apereo.cas.services;
import org.apereo.cas.authentication.principal.Principal;
import java.util.Collection;
/**
* This is {@link MultifactorAuthenticationProviderSelector}
* that decides how to resolve a single provider from a collection available
* to a registered service.
*
* @author Misagh Moayyed
* @since 5.0.0
*/
public interface MultifactorAuthenticationProviderSelector {
/**
* Resolve multifactor authentication provider.
*
* @param providers the providers
* @param service the service
* @param principal the principal
* @return the multifactor authentication provider
*/
MultifactorAuthenticationProvider resolve(Collection<MultifactorAuthenticationProvider> providers,
RegisteredService service,
Principal principal);
}