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
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 IOExceptionCreates a mapping between a given artifact and the SAML message to which it maps.- Parameters:
artifact
- the artifactrelyingPartyId
- ID of the party the artifact was sent toissuerId
- ID of the issuer of the artifactsamlMessage
- the SAML message- Throws:
IOException
- if an error occurs storing the information
-
get
@Nullable SAMLArtifactMap.SAMLArtifactMapEntry get(@Nonnull @NotEmpty String artifact) throws IOExceptionGets 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
Removes the artifact from this map.- Parameters:
artifact
- artifact to be removed- Throws:
IOException
- if an error occurs retrieving the information
-