code: private ModelAndView generateSuccessView(final Assertion assertion, final String proxyIou,
                                               final WebApplicationService service, final HttpServletRequest request,
                                               final Optional<MultifactorAuthenticationProvider> contextProvider,
                                               final TicketGrantingTicket 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.getId());
          }
          contextProvider.ifPresent(provider -> modelAndView.addObject(serviceValidateConfigurationContext.getAuthnContextAttribute(), provider.getId()));
          val augmentedModelObjects = augmentSuccessViewModelObjects(assertion);
          modelAndView.addAllObjects(augmentedModelObjects);
          return modelAndView;
      }
docs: Generate the success view. The result will contain the assertion and the proxy iou.
  
  @param assertion           the assertion
  @param proxyIou            the proxy iou
  @param service             the validated service
  @param contextProvider     the context provider
  @param proxyGrantingTicket the proxy granting ticket
  @return the model and view, pointed to the view name set by