package org.apereo.cas.ticket;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import org.apereo.cas.authentication.principal.Service;
import org.apereo.cas.ticket.proxy.ProxyTicket;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
/**
* The {@link ProxyTicketImpl} is a concrete implementation of the {@link ProxyTicket}.
*
* @author Misagh Moayyed
* @since 4.2
*/
@Entity
@DiscriminatorValue(ProxyTicket.PROXY_TICKET_PREFIX)
@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY)
public class ProxyTicketImpl extends ServiceTicketImpl implements ProxyTicket {
private static final long serialVersionUID = -4469960563289285371L;
/**
* Instantiates a new Proxy ticket.
*/
public ProxyTicketImpl() {
}
/**
* Instantiates a new Proxy ticket.
*
* @param id the id
* @param ticket the ticket
* @param service the service
* @param credentialProvided the credential that prompted this ticket. Could be false.
* @param policy the expiration policy
*/
@JsonCreator
public ProxyTicketImpl(@JsonProperty("id")
final String id,
@JsonProperty("grantingTicket")
final TicketGrantingTicket ticket,
@JsonProperty("service")
final Service service,
@JsonProperty("credentialProvided")
final boolean credentialProvided,
@JsonProperty("expirationPolicy")
final ExpirationPolicy policy) {
super(id, ticket, service, credentialProvided, policy);
}
@Override
public String getPrefix() {
return ProxyTicket.PREFIX;
}
}