@Override
    public void handle(final TicketGrantingTicket ticketGrantingTicket) {
        LOGGER.debug("CAS is configured to track and remove descendant tickets of the ticket-granting tickets");
        ticketGrantingTicket.getDescendantTickets().forEach(Unchecked.consumer(entry -> {
            LOGGER.trace("Deleting descendant ticket [{}] from the registry as a descendant of [{}]", entry, ticketGrantingTicket.getId());
            val ticket = descendantTicketsTrackingPolicy.extractTicket(entry);
            LOGGER.debug("Deleting ticket [{}] from the registry as a descendant of [{}]", ticket, ticketGrantingTicket.getId());
            ticketRegistry.deleteTicket(ticket);
        }));
    }
This is {@link DescendantTicketsLogoutPostProcessor}.

@author Misagh Moayyed
@since 7.1.0
core/cas-server-core-logout-api/src/main/java/org/apereo/cas/logout/DescendantTicketsLogoutPostProcessor.java