private ModelAndView generateSuccessView(final Assertion assertion,
                                             final String proxyIou,
                                             final WebApplicationService service,
                                             final HttpServletRequest request,
                                             final Optional<String> multifactorProvider,
                                             final Ticket proxyGrantingTicket) {
        val modelAndView = serviceValidateConfigurationContext.getValidationViewFactory().getModelAndView(request, true, service, getClass());
        modelAndView.addObject(CasViewConstants.MODEL_ATTRIBUTE_NAME_ASSERTION, assertion);
        modelAndView.addObject(CasViewConstants.MODEL_ATTRIBUTE_NAME_SERVICE, service);
        if (StringUtils.isNotBlank(proxyIou)) {
            modelAndView.addObject(CasViewConstants.MODEL_ATTRIBUTE_NAME_PROXY_GRANTING_TICKET_IOU, proxyIou);
        }
        if (proxyGrantingTicket != null) {
            modelAndView.addObject(CasViewConstants.MODEL_ATTRIBUTE_NAME_PROXY_GRANTING_TICKET, proxyGrantingTicket);
        }
        multifactorProvider.ifPresent(provider -> {
            val authenticationContextAttribute = serviceValidateConfigurationContext.getCasProperties().getAuthn().getMfa().getCore().getAuthenticationContextAttribute();
            org.springframework.util.StringUtils.commaDelimitedListToSet(authenticationContextAttribute)
                .forEach(attr -> modelAndView.addObject(attr, provider));
        });
        val augmentedModelObjects = augmentSuccessViewModelObjects(assertion);
        modelAndView.addAllObjects(augmentedModelObjects);
        return modelAndView;
    }
Enforce ticket validation authorization for.

@param request   the request
@param service   the service
@param assertion the assertion
support/cas-server-support-validation-core/src/main/java/org/apereo/cas/web/AbstractServiceValidateController.java