@ConditionalOnMissingBean(name = "casTwilioMultifactorAuthenticationHandler")
    @Bean
    @RefreshScope(proxyMode = ScopedProxyMode.DEFAULT)
    public AuthenticationHandler casTwilioMultifactorAuthenticationHandler(
        @Qualifier(CasTwilioMultifactorAuthenticationService.BEAN_NAME)
        final CasTwilioMultifactorAuthenticationService casTwilioMultifactorAuthenticationService,
        final ConfigurableApplicationContext applicationContext,
        @Qualifier("casTwilioMultifactorAuthenticationProvider")
        final ObjectProvider<MultifactorAuthenticationProvider> multifactorAuthenticationProvider,
        @Qualifier("casTwilioMultifactorPrincipalFactory")
        final PrincipalFactory casTwilioMultifactorPrincipalFactory,
        @Qualifier(ServicesManager.BEAN_NAME)
        final ServicesManager servicesManager,
        final CasConfigurationProperties casProperties) {
        val props = casProperties.getAuthn().getMfa().getTwilio();
        return new CasTwilioMultifactorAuthenticationHandler(casTwilioMultifactorAuthenticationService, props,
            applicationContext, servicesManager, casTwilioMultifactorPrincipalFactory,
            multifactorAuthenticationProvider);
    }
This is {@link CasTwilioMultifactorAuthenticationEventExecutionPlanConfiguration}.

@author Misagh Moayyed
@since 7.2.0
support/cas-server-support-twilio-mfa/src/main/java/org/apereo/cas/config/CasTwilioMultifactorAuthenticationEventExecutionPlanConfiguration.java