aboutsummaryrefslogtreecommitdiff
path: root/connector/src/main/java/at/asitplus/eidas/specific/connector/storage/CacheWitheIDASBackend.java
diff options
context:
space:
mode:
Diffstat (limited to 'connector/src/main/java/at/asitplus/eidas/specific/connector/storage/CacheWitheIDASBackend.java')
-rw-r--r--connector/src/main/java/at/asitplus/eidas/specific/connector/storage/CacheWitheIDASBackend.java33
1 files changed, 33 insertions, 0 deletions
diff --git a/connector/src/main/java/at/asitplus/eidas/specific/connector/storage/CacheWitheIDASBackend.java b/connector/src/main/java/at/asitplus/eidas/specific/connector/storage/CacheWitheIDASBackend.java
new file mode 100644
index 00000000..ac0abda0
--- /dev/null
+++ b/connector/src/main/java/at/asitplus/eidas/specific/connector/storage/CacheWitheIDASBackend.java
@@ -0,0 +1,33 @@
+package at.asitplus.eidas.specific.connector.storage;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
+
+import eu.eidas.auth.commons.cache.ConcurrentMapService;
+import eu.eidas.auth.commons.tx.AbstractCorrelationMap;
+
+public class CacheWitheIDASBackend extends AbstractCorrelationMap<TransactionStoreElement> {
+
+ protected CacheWitheIDASBackend(ConcurrentMapService concurrentMapService) {
+ super(concurrentMapService);
+ }
+
+ public List<String> clean(Date now, long dataTimeOut) {
+ List<String> result = new ArrayList<String>();
+ Iterator<String> iterator = map.keySet().iterator();
+ while (iterator.hasNext()) {
+ String key = iterator.next();
+ if (map.containsKey(key)) {
+ TransactionStoreElement element = map.get(key);
+ if (now.getTime() - element.getCreated().getTime() > dataTimeOut)
+ result.add(key);
+ }
+ }
+
+ return result;
+
+ }
+
+}