private static void verifyRegisteredServiceProperties(final RegisteredService registeredService, final Service service) {
        if (registeredService == null) {
            val msg = String.format("Service [%s] is not found in service registry.", service.getId());
            LOGGER.warn(msg);
            throw UnauthorizedServiceException.denied(msg);
        }
        if (!registeredService.getAccessStrategy().isServiceAccessAllowed(registeredService, service)) {
            val msg = String.format("ServiceManagement: Unauthorized Service Access. "
                + "Service [%s] is not enabled in the CAS service registry.", service.getId());
            LOGGER.warn(msg);
            throw UnauthorizedServiceException.denied(msg);
        }
    }
Process the /validate , /serviceValidate , and /proxyValidate URL requests.
<p>
Obtain the Service Ticket and Service information and present them to the CAS
validation services. Receive back an Assertion containing the user Principal
and (possibly) a chain of Proxy Principals. Store the Assertion in the Model
and chain to a View to generate the appropriate response (CAS 1, CAS 2 XML,
SAML, ...).

@author Scott Battaglia
@author Misagh Moayyed
@since 3.0.0
support/cas-server-support-validation-core/src/main/java/org/apereo/cas/web/AbstractServiceValidateController.java