package org.apereo.cas.services;
import org.apereo.cas.authentication.Authentication;
import java.io.Serializable;
/**
* This is {@link MultifactorAuthenticationProviderBypass}.
*
* @author Misagh Moayyed
* @since 5.0.0
*/
public interface MultifactorAuthenticationProviderBypass extends Serializable {
/**
* bypass mfa authn attribute.
*/
String AUTHENTICATION_ATTRIBUTE_BYPASS_MFA = "bypassMultifactorAuthentication";
/**
* bypass mfa for provider id authn attribute.
*/
String AUTHENTICATION_ATTRIBUTE_BYPASS_MFA_PROVIDER = "bypassedMultifactorAuthenticationProviderId";
/**
* Eval current bypass rules for the provider.
*
* @param authentication the authentication
* @param registeredService the registered service in question
* @param provider the provider
* @return false is request isn't supported and can be bypassed. true otherwise.
*/
boolean isAuthenticationRequestHonored(Authentication authentication, RegisteredService registeredService,
MultifactorAuthenticationProvider provider);
}