package org.apereo.cas.ticket.proxy;
import org.apereo.cas.authentication.Authentication;
import org.apereo.cas.ticket.ServiceTicket;
import org.apereo.cas.ticket.AbstractTicketException;
import org.apereo.cas.ticket.TicketFactory;
/**
* The {@link ProxyGrantingTicketFactory} is responsible for
* creating instances of {@link ProxyGrantingTicket}.
*
* @author Misagh Moayyed
* @since 4.2
*/
public interface ProxyGrantingTicketFactory extends TicketFactory {
/**
* Create the ticket object.
*
* @param <T> the type parameter
* @param ticket the ticket
* @param authentication the authentication
* @return the ticket instance
* @throws AbstractTicketException the abstract ticket exception
*/
<T extends ProxyGrantingTicket> T create(ServiceTicket ticket, Authentication authentication)
throws AbstractTicketException;
}