Class TicketIdentifierGenerationStrategy

  • All Implemented Interfaces:
    net.shibboleth.utilities.java.support.security.IdentifierGenerationStrategy

    public class TicketIdentifierGenerationStrategy
    extends Object
    implements net.shibboleth.utilities.java.support.security.IdentifierGenerationStrategy
    Generates CAS protocol ticket identifiers of the form:
     [PREFIX]-[SEQUENCE_PART]-[RANDOM_PART]-[SUFFIX],
     
    where suffix is optional. By default tickets have at least 128 bits of entropy in the random part of the identifier.
    • Field Detail

      • idGenerator

        private final org.cryptacular.generator.IdGenerator idGenerator
        Generator for random part of the ticket.
      • ticketPrefix

        @Nonnull
        @NotEmpty
        private String ticketPrefix
        Ticket prefix.
      • ticketSuffix

        @Nullable
        private String ticketSuffix
        Ticket suffix.
      • ticketLength

        @Positive
        private int ticketLength
        Number of characters in random part of generated ticket.
    • Constructor Detail

      • TicketIdentifierGenerationStrategy

        public TicketIdentifierGenerationStrategy​(@Nonnull @NotEmpty @ParameterName(name="prefix")
                                                  String prefix,
                                                  @Positive @ParameterName(name="randomLength")
                                                  int randomLength)
        Creates a new ticket ID generator.
        Parameters:
        prefix - Ticket ID prefix (e.g. ST, PT, PGT). MUST be a URL safe string.
        randomLength - Length in characters of random part of the ticket.
    • Method Detail

      • setSuffix

        public void setSuffix​(@Nullable
                              String suffix)
        Sets the ticket ID suffix.
        Parameters:
        suffix - Ticket suffix.
      • generateIdentifier

        @Nonnull
        public String generateIdentifier()
        Specified by:
        generateIdentifier in interface net.shibboleth.utilities.java.support.security.IdentifierGenerationStrategy
      • generateIdentifier

        @Nonnull
        public String generateIdentifier​(boolean xmlSafe)
        Specified by:
        generateIdentifier in interface net.shibboleth.utilities.java.support.security.IdentifierGenerationStrategy
      • isUrlSafe

        private static boolean isUrlSafe​(String s)
        Whether the URL is safe.
        Parameters:
        s - URL
        Returns:
        whether the URL is safe