Interface TicketComponent

  • All Known Implementing Classes:
    InMemoryTicketComponentImpl

    @AlfrescoPublicApi
    public interface TicketComponent
    Manage authentication tickets
    Author:
    andyh
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      void clearCurrentTicket()
      Clear the current ticket
      int countTickets​(boolean nonExpiredOnly)
      Count tickets This may be higher than the user count, since a user can have more than one ticket/session
      java.lang.String getAuthorityForTicket​(java.lang.String ticket)
      Get the authority for the given ticket
      java.lang.String getCurrentTicket​(java.lang.String userName, boolean autoCreate)
      Get the current ticket
      java.lang.String getNewTicket​(java.lang.String userName)
      Register a new ticket
      java.util.Set<java.lang.String> getUsersWithTickets​(boolean nonExpiredOnly)
      Get set of users with tickets This may be lower than the ticket count, since a user can have more than one ticket/session
      boolean getUseSingleTicketPerUser()
      Does this ticket component support a single ticket per user or one ticket for each time they login?
      void invalidateTicketById​(java.lang.String ticket)
      Invalidate the tickets by id
      void invalidateTicketByUser​(java.lang.String userName)
      Invalidate all user tickets
      int invalidateTickets​(boolean expiredOnly)
      Invalidate tickets
      java.lang.String validateTicket​(java.lang.String ticket)
      Check that a certificate is valid and can be used in place of a login.
    • Method Detail

      • getCurrentTicket

        java.lang.String getCurrentTicket​(java.lang.String userName,
                                          boolean autoCreate)
        Get the current ticket
        Parameters:
        userName - String
        autoCreate - should we create one automatically if there isn't one?
        Returns:
        - the ticket
      • validateTicket

        @Auditable(parameters="ticket",
                   recordable=false)
        java.lang.String validateTicket​(java.lang.String ticket)
                                 throws AuthenticationException
        Check that a certificate is valid and can be used in place of a login. Tickets may be rejected because:
        1. The certificate does not exists
        2. The status of the user has changed
          1. The user is locked
          2. The account has expired
          3. The credentials have expired
          4. The account is disabled
        3. The ticket may have expired
          1. The ticked my be invalid by timed expiry
          2. An attemp to reuse a once only ticket
        Parameters:
        ticket - String
        Returns:
        - the user name
        Throws:
        AuthenticationException
      • invalidateTicketById

        @Auditable(parameters="ticket",
                   recordable=false)
        void invalidateTicketById​(java.lang.String ticket)
        Invalidate the tickets by id
        Parameters:
        ticket - String
      • invalidateTicketByUser

        void invalidateTicketByUser​(java.lang.String userName)
        Invalidate all user tickets
        Parameters:
        userName - String
      • countTickets

        int countTickets​(boolean nonExpiredOnly)
        Count tickets This may be higher than the user count, since a user can have more than one ticket/session
        Parameters:
        nonExpiredOnly - true for non expired tickets, false for all (including expired) tickets
        Returns:
        int number of tickets
      • getUsersWithTickets

        java.util.Set<java.lang.String> getUsersWithTickets​(boolean nonExpiredOnly)
        Get set of users with tickets This may be lower than the ticket count, since a user can have more than one ticket/session
        Parameters:
        nonExpiredOnly - true for non expired tickets, false for all (including expired) tickets
      • invalidateTickets

        int invalidateTickets​(boolean expiredOnly)
        Invalidate tickets
        Parameters:
        expiredOnly - true for EXPIRED tickets, false for ALL (including non-expired) tickets
        Returns:
        int count of invalidated tickets
      • getAuthorityForTicket

        java.lang.String getAuthorityForTicket​(java.lang.String ticket)
        Get the authority for the given ticket
        Parameters:
        ticket - String
        Returns:
        the authority
      • clearCurrentTicket

        void clearCurrentTicket()
        Clear the current ticket
      • getUseSingleTicketPerUser

        boolean getUseSingleTicketPerUser()
        Does this ticket component support a single ticket per user or one ticket for each time they login?
        Returns:
        boolean