/** * Gets the proxied ticket instance. * * @param ticket the ticket * @return the proxied ticket instance */ protected final Ticket getProxiedTicketInstance(final Ticket ticket) { if (ticket == null) { return null; } if (ticket instanceof ProxyGrantingTicket) { return new ProxyGrantingTicketDelegator(this, (ProxyGrantingTicket) ticket, needsCallback()); } if (ticket instanceof TicketGrantingTicket) { return new TicketGrantingTicketDelegator<>(this, (TicketGrantingTicket) ticket, needsCallback()); } if (ticket instanceof ProxyTicket) { return new ProxyTicketDelegator(this, (ProxyTicket) ticket, needsCallback()); } if (ticket instanceof ServiceTicket) { return new ServiceTicketDelegator<>(this, (ServiceTicket) ticket, needsCallback()); } throw new IllegalStateException("Cannot wrap ticket of type: " + ticket.getClass() + " with a proxy delegator"); }