Class HazelcastTicketRegistry

java.lang.Object
org.apereo.cas.ticket.registry.AbstractTicketRegistry
org.apereo.cas.ticket.registry.HazelcastTicketRegistry
All Implemented Interfaces:
AutoCloseable, org.apereo.cas.ticket.registry.TicketRegistry, org.springframework.beans.factory.DisposableBean

@Monitorable public class HazelcastTicketRegistry extends org.apereo.cas.ticket.registry.AbstractTicketRegistry implements AutoCloseable, org.springframework.beans.factory.DisposableBean
Hazelcast-based implementation of a TicketRegistry.

This implementation just wraps the Hazelcast's IMap which is an extension of the standard Java's ConcurrentMap.

The heavy lifting of distributed data partitioning, network cluster discovery and join, data replication, etc. is done by Hazelcast's Map implementation.

Since:
4.1.0
  • Field Summary

    Fields inherited from interface org.apereo.cas.ticket.registry.TicketRegistry

    BEAN_NAME
  • Constructor Summary

    Constructors
    Constructor
    Description
    HazelcastTicketRegistry(org.apereo.cas.util.crypto.CipherExecutor cipherExecutor, org.apereo.cas.ticket.serialization.TicketSerializationManager ticketSerializationManager, org.apereo.cas.ticket.TicketCatalog ticketCatalog, com.hazelcast.core.HazelcastInstance hazelcastInstance, org.apereo.cas.configuration.model.support.hazelcast.HazelcastTicketRegistryProperties properties)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addTicketInternal(org.apereo.cas.ticket.Ticket ticket)
     
    void
     
    long
    countSessionsFor(String principalId)
     
    long
     
    long
    deleteSingleTicket(org.apereo.cas.ticket.Ticket ticketToDelete)
     
    void
     
    Stream<? extends org.apereo.cas.ticket.Ticket>
    getSessionsFor(String principalId)
     
    Stream<? extends org.apereo.cas.ticket.Ticket>
     
    org.apereo.cas.ticket.Ticket
    getTicket(String ticketId, Predicate<org.apereo.cas.ticket.Ticket> predicate)
     
    Collection<? extends org.apereo.cas.ticket.Ticket>
     
    void
    Make sure we shutdown HazelCast when the context is destroyed.
    org.apereo.cas.ticket.Ticket
    updateTicket(org.apereo.cas.ticket.Ticket ticket)
     

    Methods inherited from class org.apereo.cas.ticket.registry.AbstractTicketRegistry

    addTicket, deleteTicket, deleteTicket, digestIdentifier, getTicket, getTicket, serviceTicketCount, sessionCount, setCipherExecutor

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.apereo.cas.ticket.registry.TicketRegistry

    addTicket, getTickets, stream
  • Constructor Details

    • HazelcastTicketRegistry

      public HazelcastTicketRegistry(org.apereo.cas.util.crypto.CipherExecutor cipherExecutor, org.apereo.cas.ticket.serialization.TicketSerializationManager ticketSerializationManager, org.apereo.cas.ticket.TicketCatalog ticketCatalog, com.hazelcast.core.HazelcastInstance hazelcastInstance, org.apereo.cas.configuration.model.support.hazelcast.HazelcastTicketRegistryProperties properties)
  • Method Details

    • updateTicket

      public org.apereo.cas.ticket.Ticket updateTicket(org.apereo.cas.ticket.Ticket ticket) throws Exception
      Specified by:
      updateTicket in interface org.apereo.cas.ticket.registry.TicketRegistry
      Throws:
      Exception
    • addTicketInternal

      public void addTicketInternal(org.apereo.cas.ticket.Ticket ticket) throws Exception
      Throws:
      Exception
    • getTicket

      public org.apereo.cas.ticket.Ticket getTicket(String ticketId, Predicate<org.apereo.cas.ticket.Ticket> predicate)
      Specified by:
      getTicket in interface org.apereo.cas.ticket.registry.TicketRegistry
    • deleteSingleTicket

      public long deleteSingleTicket(org.apereo.cas.ticket.Ticket ticketToDelete)
      Specified by:
      deleteSingleTicket in class org.apereo.cas.ticket.registry.AbstractTicketRegistry
    • deleteAll

      public long deleteAll()
      Specified by:
      deleteAll in interface org.apereo.cas.ticket.registry.TicketRegistry
    • getTickets

      public Collection<? extends org.apereo.cas.ticket.Ticket> getTickets()
      Specified by:
      getTickets in interface org.apereo.cas.ticket.registry.TicketRegistry
    • countSessionsFor

      public long countSessionsFor(String principalId)
      Specified by:
      countSessionsFor in interface org.apereo.cas.ticket.registry.TicketRegistry
      Overrides:
      countSessionsFor in class org.apereo.cas.ticket.registry.AbstractTicketRegistry
    • getSessionsWithAttributes

      public Stream<? extends org.apereo.cas.ticket.Ticket> getSessionsWithAttributes(Map<String,List<Object>> queryAttributes)
      Specified by:
      getSessionsWithAttributes in interface org.apereo.cas.ticket.registry.TicketRegistry
      Overrides:
      getSessionsWithAttributes in class org.apereo.cas.ticket.registry.AbstractTicketRegistry
    • getSessionsFor

      public Stream<? extends org.apereo.cas.ticket.Ticket> getSessionsFor(String principalId)
      Specified by:
      getSessionsFor in interface org.apereo.cas.ticket.registry.TicketRegistry
    • shutdown

      public void shutdown()
      Make sure we shutdown HazelCast when the context is destroyed.
    • destroy

      public void destroy()
      Specified by:
      destroy in interface org.springframework.beans.factory.DisposableBean
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable