protected AuthenticationContextValidationResult validateMultifactorProviderBypass(
        final MultifactorAuthenticationProvider provider,
        final RegisteredService registeredService,
        final Authentication authentication,
        final Service service,
        final HttpServletRequest request) {
        
        if (provider.isAvailable(registeredService)) {
            val bypassEvaluator = provider.getBypassEvaluator();
            if (bypassEvaluator != null) {
                if (!bypassEvaluator.shouldMultifactorAuthenticationProviderExecute(authentication, registeredService, provider, request, service)) {
                    LOGGER.debug("MFA provider [{}] should be bypassed for this service request [{}]", provider, service);
                    bypassEvaluator.rememberBypass(authentication, provider);
                    return toSuccessfulResult();
                }
                if (bypassEvaluator.isMultifactorAuthenticationBypassed(authentication, provider.getId())) {
                    LOGGER.debug("Authentication attempt indicates that MFA is bypassed for this request for [{}]", provider);
                    bypassEvaluator.rememberBypass(authentication, provider);
                    return toSuccessfulResult();
                }
            }
        } else {
            val failure = provider.getFailureModeEvaluator().evaluate(registeredService, provider);
            if (failure != BaseMultifactorAuthenticationProviderProperties.MultifactorAuthenticationProviderFailureModes.CLOSED) {
                return toSuccessfulResult();
            }
        }
        return toFailureResult();
    }
This is {@link DefaultRequestedAuthenticationContextValidator}.

@author Misagh Moayyed
@since 6.0.0
core/cas-server-core-authentication-mfa-api/src/main/java/org/apereo/cas/authentication/DefaultRequestedAuthenticationContextValidator.java