AbstractTicketRegistry.deleteTicket() – handles the removal of all of the tickets. If a TGT is passed in, this will look for child, PGTs and clean them up first. In a CAS-only session, this got a TGT, found a PGT and deleted them both. In a CAS/Redis session, this only got a TGT – no PGT. I’m guessing that this means that either the PGT was never added to the parent, TGT or that the reference to it was cleared out before the deleteTicket() call.
ServiceTicketImpl.grantProxyGrantingTicket() – creates the PGT and adds it to the TGT’s getProxyGrantingTickets() Map. There wasn’t much logging here. I know the PGT was created but I don’t know if it was actually assigned to its parent. I didn’t see any Exceptions. So, I assume the child-to-parent assignment was made.
RedisTicketRegistry – uses an org.springframework.data.redis.core.RedisTemplate – to set and get entries. This differs with DefaultTicketRegistry that simply uses a ConcurrentHashMap to handle the tickets. It kind of makes me wonder whether there’s an issue with the spring data component.