Interface SAMLArtifactMap

All Known Implementing Classes:
BasicSAMLArtifactMap, StorageServiceSAMLArtifactMap

public interface SAMLArtifactMap
Maps an artifact to a SAML message and back again.

An implementation of this interface MUST ensure that the persisted SAML message is no longer tied to any parent XMLObject that may have contained it. This ensures that it can be safely added to another object once retrieved from the map. This might for example be achieved by: 1) cloning the SAMLObject prior to storage, or 2) by serializing it to a string and re-parsing and unmarshalling it once retrieved from the underlying data store. This requirement may be handled by the SAMLArtifactMap directly, or by the use of of a specific implementation of SAMLArtifactMap.SAMLArtifactMapEntryFactory.

  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Interface
    Description
    static interface 
    Represents a mapping between an artifact and a SAML message with some associated information.
    static interface 
    A factory for producing SAMLArtifactMapEntry instances based on standard inputs, and reading/writing them from/to storage.
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    contains(String artifact)
    Checks if a given artifact has a map entry.
    get(String artifact)
    Gets the artifact entry for the given artifact.
    void
    put(String artifact, String relyingPartyId, String issuerId, SAMLObject samlMessage)
    Creates a mapping between a given artifact and the SAML message to which it maps.
    void
    remove(String artifact)
    Removes the artifact from this map.
  • Method Details

    • contains

      boolean contains(@Nonnull @NotEmpty String artifact) throws IOException
      Checks if a given artifact has a map entry.
      Parameters:
      artifact - the artifact to check
      Returns:
      true iff this map has an entry for the given artifact
      Throws:
      IOException - if an error occurs retrieving the information
    • put

      void put(@Nonnull @NotEmpty String artifact, @Nonnull @NotEmpty String relyingPartyId, @Nonnull @NotEmpty String issuerId, @Nonnull SAMLObject samlMessage) throws IOException
      Creates a mapping between a given artifact and the SAML message to which it maps.
      Parameters:
      artifact - the artifact
      relyingPartyId - ID of the party the artifact was sent to
      issuerId - ID of the issuer of the artifact
      samlMessage - the SAML message
      Throws:
      IOException - if an error occurs storing the information
    • get

      @Nullable SAMLArtifactMap.SAMLArtifactMapEntry get(@Nonnull @NotEmpty String artifact) throws IOException
      Gets the artifact entry for the given artifact.
      Parameters:
      artifact - the artifact to retrieve the entry for
      Returns:
      the entry, or null if the artifact has already expired or did not exist
      Throws:
      IOException - if an error occurs retrieving the information
    • remove

      void remove(@Nonnull @NotEmpty String artifact) throws IOException
      Removes the artifact from this map.
      Parameters:
      artifact - artifact to be removed
      Throws:
      IOException - if an error occurs retrieving the information