protected Event finalizeDelegatedClientAuthentication(final RequestContext context,
                                                          final ClientCredential credentials) throws Throwable {
        val strategies = new ArrayList<>(configContext.getApplicationContext()
            .getBeansOfType(DelegatedClientAuthenticationCredentialResolver.class).values());
        AnnotationAwareOrderComparator.sortIfNecessary(strategies);
        val candidateMatches = strategies
            .stream()
            .filter(BeanSupplier::isNotProxy)
            .filter(strategy -> strategy.supports(credentials))
            .map(Unchecked.function(strategy -> strategy.resolve(context, credentials)))
            .flatMap(List::stream)
            .collect(Collectors.toList());
        if (candidateMatches.isEmpty()) {
            return super.doExecuteInternal(context);
        }
        DelegationWebflowUtils.putDelegatedClientAuthenticationResolvedCredentials(context, candidateMatches);
        return new Event(this, CasWebflowConstants.TRANSITION_ID_SELECT);
    }
This class represents an action to put at the beginning of the webflow.
<p>
Before any authentication, redirection urls are computed for the different clients defined as well as the theme,
locale, method and service are saved into the web session.</p>
After authentication, appropriate information are expected on this callback url to finish the authentication
process with the provider.

@author Jerome Leleu
@since 3.5.0
support/cas-server-support-pac4j-webflow/src/main/java/org/apereo/cas/web/flow/actions/DelegatedClientAuthenticationAction.java