@Override
    protected Event doExecuteInternal(final RequestContext requestContext) throws Throwable {
        val tgt = WebUtils.getTicketGrantingTicket(requestContext);
        try {
            if (tgt instanceof final AuthenticationAwareTicket aat) {
                val principal = aat.getAuthentication().getPrincipal();
                val url = passwordResetUrlBuilder.build(principal.getId()).toExternalForm();
                LOGGER.debug("Redirecting password reset flow to [{}]", url);
                WebUtils.putServiceRedirectUrl(requestContext, url);
                return success(url);
            }
        } finally {
            ticketRegistry.deleteTicket(tgt);
        }
        return null;
    }
This is {@link AccountProfilePasswordChangeRequestAction}.

@author Misagh Moayyed
@since 6.6.0
support/cas-server-support-pm-webflow/src/main/java/org/apereo/cas/pm/web/flow/actions/AccountProfilePasswordChangeRequestAction.java