private boolean validateExistingAuthentication(final Authentication authentication,
                                                   final RequestContext requestContext) throws Throwable {
        if (authentication != null) {
            val configContext = getConfigurationContext();
            val ssoStrategy = configContext.getSingleSignOnParticipationStrategy();

            val ssoRequest = SingleSignOnParticipationRequest.builder()
                .requestContext(requestContext)
                .build();

            if (ssoStrategy.supports(ssoRequest) && !ssoStrategy.isParticipating(ssoRequest)) {
                LOGGER.debug("Single sign-on strategy does not allow reusing the authentication attempt [{}]", authentication);
                return false;
            }
            LOGGER.trace("Existing authentication attempt [{}] is valid", authentication);
            return true;
        }
        LOGGER.trace("Cannot validate absent/missing authentication attempt");
        return false;
    }
Grant service ticket for the given credential based on the service and tgt
that are found in the request context.

@param context the context
@return the resulting event. Warning, authentication failure or error.
@since 4.1.0
core/cas-server-core-webflow-api/src/main/java/org/apereo/cas/web/flow/resolver/impl/ServiceTicketRequestWebflowEventResolver.java