protected List<String> determineAuthenticationHandlersForSourceSelection(final RequestContext context) {
        val availableHandlers = authenticationEventExecutionPlan.resolveAuthenticationHandlers()
            .stream()
            .filter(handler -> handler.supports(UsernamePasswordCredential.class))
            .map(handler -> StringUtils.capitalize(handler.getName().trim()))
            .distinct()
            .sorted()
            .collect(Collectors.toList());
        val registeredService = WebUtils.getRegisteredService(context);
        if (registeredService != null && registeredService.getAuthenticationPolicy() != null) {
            val requiredHandlers = registeredService.getAuthenticationPolicy().getRequiredAuthenticationHandlers();
            if (requiredHandlers != null && !requiredHandlers.isEmpty()) {
                availableHandlers.removeIf(handler -> !requiredHandlers.contains(handler));
            }
        }
        return availableHandlers;
    }
Class to automatically set the paths for the CookieGenerators.
<p>
Note: This is technically not thread-safe, but because its overriding with a
constant value it doesn't matter.
<p>
Note: As of CAS 3.1, this is a required class that retrieves and exposes the
values in the two cookies for subclasses to use.

@author Scott Battaglia
@since 3.1
support/cas-server-support-actions-core/src/main/java/org/apereo/cas/web/flow/login/InitialFlowSetupAction.java