default boolean canImpersonate(final String surrogate, final Principal principal, final Optional<? extends Service> service) throws Throwable {
        return false;
    }
Checks whether a principal can authenticate as a surrogate user.

@param surrogate The username of the surrogate
@param principal the principal
@param service   the service
@return true if the given surrogate can authenticate as the user
@throws Throwable the throwable
support/cas-server-support-surrogate-api/src/main/java/org/apereo/cas/authentication/surrogate/SurrogateAuthenticationService.java