Package org.opensaml.saml.common.binding.artifact

# 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`
`SAMLArtifactMap.SAMLArtifactMapEntry`
Represents a mapping between an artifact and a SAML message with some associated information.
`static interface`
`SAMLArtifactMap.SAMLArtifactMapEntryFactory`
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.
`SAMLArtifactMap.SAMLArtifactMapEntry`
`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