@ConditionalOnMissingBean(name = CasSimpleMultifactorAuthenticationService.BEAN_NAME)
    @Bean
    @RefreshScope(proxyMode = ScopedProxyMode.DEFAULT)
    public CasSimpleMultifactorAuthenticationService casSimpleMultifactorAuthenticationService(
        final ConfigurableApplicationContext applicationContext,
        final CasConfigurationProperties casProperties,
        @Qualifier(TicketFactory.BEAN_NAME)
        final TicketFactory ticketFactory,
        @Qualifier(CasSimpleMultifactorAuthenticationAccountService.BEAN_NAME)
        final ObjectProvider<CasSimpleMultifactorAuthenticationAccountService> accountService,
        @Qualifier(TicketRegistry.BEAN_NAME)
        final TicketRegistry ticketRegistry) {
        val simple = casProperties.getAuthn().getMfa().getSimple();
        return BeanSupplier.of(CasSimpleMultifactorAuthenticationService.class)
            .when(BeanCondition.on("cas.authn.mfa.simple.token.rest.url").isUrl().given(applicationContext.getEnvironment()))
            .supply(() -> new RestfulCasSimpleMultifactorAuthenticationService(ticketRegistry, simple.getToken().getRest(), ticketFactory))
            .otherwise(() -> new DefaultCasSimpleMultifactorAuthenticationService(ticketRegistry, ticketFactory, accountService))
            .get();
    }
This is {@link CasSimpleMultifactorAuthenticationEventExecutionPlanConfiguration}.

@author Misagh Moayyed
@since 6.0.0
support/cas-server-support-simple-mfa/src/main/java/org/apereo/cas/config/CasSimpleMultifactorAuthenticationEventExecutionPlanConfiguration.java