@Override
    public void populateAttributes(final AuthenticationBuilder builder,
                                   final AuthenticationTransaction transaction) {
        val registeredService = servicesManager.findServiceBy(transaction.getService());
        val failureEval = provider.getObject().getFailureModeEvaluator();
        val bypass = failureEval != null
                     && failureEval.evaluate(registeredService, provider.getObject()) == MultifactorAuthenticationProviderFailureModes.PHANTOM
                     && !provider.getObject().isAvailable(registeredService);
        FunctionUtils.doIf(bypass, __ ->
            StringUtils.commaDelimitedListToSet(authenticationContextAttribute).forEach(attribute ->
                builder.mergeAttribute(attribute, provider.getObject().getId()))).accept(provider);
    }
This is {@link MultifactorAuthenticationProviderMetadataPopulator}.

@author Misagh Moayyed
@since 6.6.0
core/cas-server-core-authentication-api/src/main/java/org/apereo/cas/authentication/metadata/MultifactorAuthenticationProviderMetadataPopulator.java