Class StoredTransientIdGenerationStrategy

All Implemented Interfaces:
TransientIdGenerationStrategy, Component, DestructableComponent, IdentifiableComponent, IdentifiedComponent, InitializableComponent

public class StoredTransientIdGenerationStrategy
extends AbstractIdentifiableInitializableComponent
implements TransientIdGenerationStrategy
Generates transients using a StorageService to manage the reverse mappings.

The identifier itself is the record key, and the value combines the principal name with the identifier of the recipient.

  • Field Details

    • log

      @Nonnull private final org.slf4j.Logger log
      Class logger.
    • idStore

      Store used to map identifiers to principals.
    • idGenerator

      Generator of random, hex-encoded, identifiers.
    • idSize

      private int idSize
      Size, in bytes, of the identifier.
    • idLifetime

      @Nonnull private Duration idLifetime
      Length identifiers are valid.
  • Constructor Details

    • StoredTransientIdGenerationStrategy

      public StoredTransientIdGenerationStrategy()
      Constructor.
  • Method Details

    • setIdStore

      public void setIdStore​(@Nonnull StorageService store)
      Set the ID store we should use.
      Parameters:
      store - the store to use.
    • setIdGenerator

      public void setIdGenerator​(@Nonnull IdentifierGenerationStrategy generator)
      Set the ID generator we should use.
      Parameters:
      generator - identifier generation strategy to use
    • getIdSize

      @Positive public int getIdSize()
      Get the size, in bytes, of the id.
      Returns:
      id size, in bytes
    • setIdSize

      public void setIdSize​(@Positive int size)
      Set the size, in bytes, of the id.
      Parameters:
      size - size, in bytes, of the id
    • getIdLifetime

      @Nonnull public Duration getIdLifetime()
      Get the time ids are valid.
      Returns:
      time ids are valid
    • setIdLifetime

      public void setIdLifetime​(@Nonnull Duration lifetime)
      Set the time ids are valid.
      Parameters:
      lifetime - time ids are valid
    • doInitialize

      protected void doInitialize() throws ComponentInitializationException
      Overrides:
      doInitialize in class AbstractIdentifiedInitializableComponent
      Throws:
      ComponentInitializationException
    • generate

      @Nonnull @NotEmpty public String generate​(@Nonnull @NotEmpty String relyingPartyId, @Nonnull @NotEmpty String principalName) throws SAMLException
      Generate a new Transient ID.
      Specified by:
      generate in interface TransientIdGenerationStrategy
      Parameters:
      relyingPartyId - the relying party for whom we're generating
      principalName - the principal to map to
      Returns:
      the new identifier
      Throws:
      SAMLException - if an error occurs generating the identifier