@Override
    public Service resolveServiceFrom(final Service service) throws Throwable {
        val result = getEntityIdAsParameter(service);
        if (result.isPresent()) {
            val entityId = result.get();
            LOGGER.debug("Located entity id [{}] from service authentication request at [{}]", entityId, service.getId());
            if (isEntityIdServiceRegistered(entityId, service)) {
                return createService(entityId, service);
            }
            LOGGER.debug("Entity id [{}] not registered as individual service", entityId);
        }
        LOGGER.debug("Could not located entity id from service authentication request at [{}]", service.getId());
        return service;
    }
Method attempts to resolve the service from the entityId parameter.  If present, an attempt is made
to find a service corresponding to the entityId in the Service Registry.  If a service is not resolved from
a passed entity id, the service= parameter of the request will be returned instead.  This is usually the
callback url to the external Shibboleth IdP.

@param service the provided service by the caller
@return - the resolved service.
support/cas-server-support-shibboleth/src/main/java/org/apereo/cas/support/saml/ShibbolethIdPEntityIdAuthenticationServiceSelectionStrategy.java