package org.apereo.cas.ticket.registry; import org.apereo.cas.authentication.Authentication; import org.apereo.cas.authentication.principal.Principal; import org.apereo.cas.ticket.TicketGrantingTicket; import org.springframework.transaction.annotation.Transactional; import java.util.Map; /** * This is {@link DefaultTicketRegistrySupport}. * * @author Misagh Moayyed * @author Dmitriy Kopylenko * @since 4.2.0 */ @Transactional(transactionManager = "ticketTransactionManager") public class DefaultTicketRegistrySupport implements TicketRegistrySupport { private final TicketRegistry ticketRegistry; public DefaultTicketRegistrySupport(final TicketRegistry ticketRegistry) { this.ticketRegistry = ticketRegistry; } @Override public Authentication getAuthenticationFrom(final String ticketGrantingTicketId) throws RuntimeException { final TicketGrantingTicket tgt = this.ticketRegistry.getTicket(ticketGrantingTicketId, TicketGrantingTicket.class); return tgt == null ? null : tgt.getAuthentication(); } @Override public Principal getAuthenticatedPrincipalFrom(final String ticketGrantingTicketId) throws RuntimeException { final Authentication auth = getAuthenticationFrom(ticketGrantingTicketId); return auth == null ? null : auth.getPrincipal(); } @Override public Map<String, Object> getPrincipalAttributesFrom(final String ticketGrantingTicketId) throws RuntimeException { final Principal principal = getAuthenticatedPrincipalFrom(ticketGrantingTicketId); return principal == null ? null : principal.getAttributes(); } @Override public void updateAuthentication(final String ticketGrantingTicketId, final Authentication authentication) { final TicketGrantingTicket tgt = this.ticketRegistry.getTicket(ticketGrantingTicketId, TicketGrantingTicket.class); tgt.getAuthentication().update(authentication); this.ticketRegistry.updateTicket(tgt); } }