Class MessageReplayCheckerImpl

java.lang.Object
se.swedenconnect.opensaml.saml2.response.replay.MessageReplayCheckerImpl
All Implemented Interfaces:
MessageReplayChecker

public class MessageReplayCheckerImpl extends Object implements MessageReplayChecker
Message replay checker implementation using OpenSAML's ReplayCache as an underlying cache.
Author:
Martin Lindström (martin.lindstrom@litsec.se)
  • Constructor Details Link icon

    • MessageReplayCheckerImpl Link icon

      public MessageReplayCheckerImpl(ReplayCache replayCache, String replayCacheName)
      Constructor.
      Parameters:
      replayCache - the OpenSAML ReplayCache object to use
      replayCacheName - the name of the replay cache
  • Method Details Link icon

    • checkReplay Link icon

      public void checkReplay(String id) throws MessageReplayException
      Checks if the supplied message ID already has been processed within the time the replay checker keeps the processed items in its cache.
      Specified by:
      checkReplay in interface MessageReplayChecker
      Parameters:
      id - the message ID
      Throws:
      MessageReplayException - if there is a replay attack
    • checkReplay Link icon

      public void checkReplay(SAMLObject object) throws MessageReplayException, IllegalArgumentException
      Checks if the supplied message contains an ID that already has been processed within the time the replay checker keeps the processed items in its cache.
      Specified by:
      checkReplay in interface MessageReplayChecker
      Parameters:
      object - the SAML message object
      Throws:
      MessageReplayException - if there is a replay attack
      IllegalArgumentException - if the supplied object is not supported by the checker
    • setReplayCache Link icon

      public void setReplayCache(ReplayCache replayCache)
      Assigns the replay cache to use when checking against replay attacks.
      Parameters:
      replayCache - the cache
    • setReplayCacheName Link icon

      public void setReplayCacheName(String replayCacheName)
      Assigns the name of the replay cache.
      Parameters:
      replayCacheName - the name
    • setReplayCacheExpiration Link icon

      public void setReplayCacheExpiration(long replayCacheExpiration)
      Assigns the number of milliseconds each stored ID should be kept in the cache. The default is 5 minutes.
      Parameters:
      replayCacheExpiration - number of millis