@Override
    protected Event doExecuteInternal(final RequestContext requestContext) {
        val beanFactory = ((ConfigurableApplicationContext) requestContext.getActiveFlow().getApplicationContext()).getBeanFactory();
        val providers = new ArrayList<>(BeanFactoryUtils.beansOfTypeIncludingAncestors(beanFactory, DuoSecurityMultifactorAuthenticationProvider.class).values());
        return providers
            .stream()
            .filter(Objects::nonNull)
            .filter(BeanSupplier::isNotProxy)
            .filter(provider -> provider.getDuoAuthenticationService().getProperties().isPasswordlessAuthenticationEnabled())
            .map(provider -> FunctionUtils.doAndHandle(() -> {
                val account = PasswordlessWebflowUtils.getPasswordlessAuthenticationAccount(requestContext, PasswordlessUserAccount.class);
                val principal = PrincipalFactoryUtils.newPrincipalFactory().createPrincipal(account.getUsername());
                val credential = new DuoSecurityDirectCredential(principal, provider.getId());
                val credentialMetadata = new BasicCredentialMetadata(credential);
                credentialMetadata.setTenant(tenantExtractor.extract(requestContext).map(TenantDefinition::getId).orElse(null));
                
                val service = WebUtils.getService(requestContext);
                val authenticationResultBuilder = authenticationSystemSupport.handleInitialAuthenticationTransaction(service, credential);
                val authenticationResult = authenticationSystemSupport.finalizeAllAuthenticationTransactions(authenticationResultBuilder, service);
                WebUtils.putAuthenticationResultBuilder(authenticationResultBuilder, requestContext);
                WebUtils.putAuthenticationResult(authenticationResult, requestContext);
                WebUtils.putAuthentication(authenticationResult.getAuthentication(), requestContext);
                WebUtils.putCredential(requestContext, credential);
                return success();
            }, e -> error()).get())
            .findFirst()
            .orElseGet(this::error);
    }
This is {@link DuoSecurityVerifyPasswordlessAuthenticationAction}.

@author Misagh Moayyed
@since 7.1.0
support/cas-server-support-duo-core/src/main/java/org/apereo/cas/adaptors/duo/web/flow/action/DuoSecurityVerifyPasswordlessAuthenticationAction.java