Class AbstractTicketService

    • Field Detail

      • CONTEXT_CLASS_MAP

        private static final Map<Class<? extends Ticket>,​String> CONTEXT_CLASS_MAP
        Map of ticket classes to context names.
      • log

        private final org.slf4j.Logger log
        Class logger.
      • storageService

        @Nonnull
        private final StorageService storageService
        Storage service to which ticket persistence operations are delegated.
    • Constructor Detail

      • AbstractTicketService

        public AbstractTicketService​(@Nonnull
                                     StorageService service)
        Creates a new instance.
        Parameters:
        service - Storage service to which tickets are persisted.
    • Method Detail

      • createProxyGrantingTicket

        @Nonnull
        public ProxyGrantingTicket createProxyGrantingTicket​(@Nonnull
                                                             String id,
                                                             @Nonnull
                                                             Instant expiry,
                                                             @Nonnull
                                                             ServiceTicket serviceTicket)
        Description copied from interface: TicketService
        Creates a top-level proxy-granting ticket from a service ticket.
        Specified by:
        createProxyGrantingTicket in interface TicketService
        Parameters:
        id - ID of proxy-granting ticket to create.
        expiry - Expiration date of proxy-granting ticket.
        serviceTicket - Successfully-validated service ticket.
        Returns:
        Created proxy-granting ticket.
      • createProxyGrantingTicket

        @Nonnull
        public ProxyGrantingTicket createProxyGrantingTicket​(@Nonnull
                                                             String id,
                                                             @Nonnull
                                                             Instant expiry,
                                                             @Nonnull
                                                             ProxyTicket proxyTicket)
        Description copied from interface: TicketService
        Creates a chained proxy-granting ticket from a proxy ticket. The value of ProxyTicket.getPgtId() defines the parent of the created ticket, which in turn determines its location in the proxy chain.
        Specified by:
        createProxyGrantingTicket in interface TicketService
        Parameters:
        id - ID of proxy-granting ticket to create.
        expiry - Expiration date of proxy-granting ticket.
        proxyTicket - Successfully-validated proxy ticket.
        Returns:
        Created proxy-granting ticket.
      • removeProxyGrantingTicket

        @Nullable
        public ProxyGrantingTicket removeProxyGrantingTicket​(@Nonnull
                                                             String id)
        Description copied from interface: TicketService
        Removes the proxy-granting ticket with the given identifier.
        Specified by:
        removeProxyGrantingTicket in interface TicketService
        Parameters:
        id - Identifier of ticket to remove.
        Returns:
        Removed ticket or null if not found.
      • context

        protected static String context​(Class<? extends Ticket> clazz)
        Gets the storage service context name for the given ticket type.
        Parameters:
        clazz - Ticket class.
        Returns:
        Context name for ticket type.
      • serializer

        protected static <T extends TicketStorageSerializer<T> serializer​(Class<T> clazz)
        Gets the storage service serializer for the given ticket type.
        Type Parameters:
        T - type of object being serialized
        Parameters:
        clazz - Ticket class.
        Returns:
        Storage service serializer.
      • store

        protected <T extends Ticket> void store​(T ticket)
        Stores the given ticket in the storage service.
        Type Parameters:
        T - Type of ticket.
        Parameters:
        ticket - Ticket to store
      • read

        protected <T extends Ticket> T read​(String id,
                                            Class<T> clazz)
        Retrieves a ticket by ID from the storage service.
        Type Parameters:
        T - Type of ticket.
        Parameters:
        id - Ticket identifier.
        clazz - Ticket type.
        Returns:
        Ticket or null if ticket not found.
      • delete

        protected <T extends Ticket> T delete​(String id,
                                              Class<T> clazz)
        Retrieves a ticket by ID from the storage service and then deletes it.
        Type Parameters:
        T - Type of ticket.
        Parameters:
        id - Ticket identifier.
        clazz - Ticket class
        Returns:
        Deleted ticket or null if ticket not found.