@Override
    protected Event doExecuteInternal(final RequestContext requestContext) throws Throwable {
        val service = WebUtils.getService(requestContext);
        val authentication = WebUtils.getAuthentication(requestContext);
        val principal = resolvePrincipal(authentication.getPrincipal(), requestContext);
        Objects.requireNonNull(principal, "Principal cannot be null");
        val success = casTwilioMultifactorAuthenticationService.generateToken(principal, service);
        if (success) {
            WebUtils.addInfoMessageToContext(requestContext, "cas.mfa.twilio.label.tokensent");
            return success();
        }
        return error();
    }
This is {@link CasTwilioMultifactorSendTokenAction}.

@author Misagh Moayyed
@since 7.2.0
support/cas-server-support-twilio-mfa/src/main/java/org/apereo/cas/web/flow/CasTwilioMultifactorSendTokenAction.java