|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.opensaml.util.storage.ReplayCache
public class ReplayCache
Class that uses an underlying StorageService to track information associated with messages in order to detect
message replays.
This class is thread-safe and uses a basic reentrant lock to avoid corruption of the underlying store, as well as to
prevent race conditions with respect to replay checking.
| Field Summary | |
|---|---|
private ReentrantLock |
cacheLock
Replay cache lock. |
private long |
entryDuration
Time, in milliseconds, that message state is valid. |
private org.slf4j.Logger |
log
Logger. |
private String |
partition
Storage service partition used by this cache. |
private StorageService<String,ReplayCacheEntry> |
storage
Backing storage for the replay cache. |
| Constructor Summary | |
|---|---|
ReplayCache(StorageService<String,ReplayCacheEntry> storageService,
long duration)
Constructor. |
|
ReplayCache(StorageService<String,ReplayCacheEntry> storageService,
String storageParition,
long duration)
Constructor. |
|
| Method Summary | |
|---|---|
protected void |
addMessageID(String messageId,
org.joda.time.DateTime expiration)
Accquires a write lock and adds the message state to the underlying storage service. |
boolean |
isReplay(String issuerId,
String messageId)
Checks if the message has been replayed. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
private final org.slf4j.Logger log
private StorageService<String,ReplayCacheEntry> storage
private String partition
private long entryDuration
private ReentrantLock cacheLock
| Constructor Detail |
|---|
public ReplayCache(StorageService<String,ReplayCacheEntry> storageService,
long duration)
storageService - the StorageService which serves as the backing store for the cacheduration - default length of time that message state is valid
public ReplayCache(StorageService<String,ReplayCacheEntry> storageService,
String storageParition,
long duration)
storageService - the StorageService which serves as the backing store for the cachestorageParition - name of storage service partition to useduration - default length of time that message state is valid| Method Detail |
|---|
public boolean isReplay(String issuerId,
String messageId)
issuerId - unique ID of the message issuermessageId - unique ID of the message
protected void addMessageID(String messageId,
org.joda.time.DateTime expiration)
messageId - unique ID of the messageexpiration - time the message state expires
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||