code: public TicketGrantingTicket handleProxyGrantingTicketDelivery(final String serviceTicketId, final Credential credential)
          throws AuthenticationException, AbstractTicketException {
          val serviceTicket = serviceValidateConfigurationContext.getCentralAuthenticationService().getTicket(serviceTicketId, ServiceTicket.class);
          val authenticationResult = serviceValidateConfigurationContext.getAuthenticationSystemSupport()
              .handleAndFinalizeSingleAuthenticationTransaction(serviceTicket.getService(), credential);
          val proxyGrantingTicketId = serviceValidateConfigurationContext.getCentralAuthenticationService()
              .createProxyGrantingTicket(serviceTicketId, authenticationResult);
          LOGGER.debug("Generated proxy-granting ticket [{}] off of service ticket [{}] and credential [{}]", proxyGrantingTicketId.getId(), serviceTicketId, credential);
          return proxyGrantingTicketId;
      }
docs: Handle proxy granting ticket delivery.
  
  @param serviceTicketId the service ticket id
  @param credential      the service credential
  @return the ticket granting ticket
  @throws AuthenticationException the authentication exception
  @throws AbstractTicketException the abstract ticket exception