diff options
author | Thomas Lenz <thomas.lenz@iaik.tugraz.at> | 2023-01-12 12:26:00 +0000 |
---|---|---|
committer | Thomas Lenz <thomas.lenz@iaik.tugraz.at> | 2023-01-12 12:26:00 +0000 |
commit | ab328e055e01b12a91c8ccee4ac0cbea3e0fb282 (patch) | |
tree | e0c57f79dc1a57d3f6c4e3af1d982b750bad96f9 /pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/store | |
parent | 74668d9f7e8cfb9c729e804067984d0f5e731f2f (diff) | |
parent | e78fccac558a93f18bae96ddb6c8e131afaf946d (diff) | |
download | pdf-as-4-ab328e055e01b12a91c8ccee4ac0cbea3e0fb282.tar.gz pdf-as-4-ab328e055e01b12a91c8ccee4ac0cbea3e0fb282.tar.bz2 pdf-as-4-ab328e055e01b12a91c8ccee4ac0cbea3e0fb282.zip |
Merge branch 'development' into 'feature/issue_73'
# Conflicts:
# build.gradle
# pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox2/PADESPDFBOXSigner.java
Diffstat (limited to 'pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/store')
-rw-r--r-- | pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/store/IRequestStore.java | 11 | ||||
-rw-r--r-- | pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/store/InMemoryRequestStore.java | 55 |
2 files changed, 52 insertions, 14 deletions
diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/store/IRequestStore.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/store/IRequestStore.java index f07a36ce..643d3ea0 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/store/IRequestStore.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/store/IRequestStore.java @@ -23,11 +23,16 @@ ******************************************************************************/ package at.gv.egiz.pdfas.web.store; -import at.gv.egiz.pdfas.api.ws.PDFASSignRequest; +import at.gv.egiz.pdfas.api.processing.PdfasSignRequest; +import at.gv.egiz.pdfas.api.processing.PdfasSignResponse; import at.gv.egiz.pdfas.web.stats.StatisticEvent; public interface IRequestStore { public StatisticEvent fetchStatisticEntry(String id); - public String createNewStoreEntry(PDFASSignRequest request, StatisticEvent event); - public PDFASSignRequest fetchStoreEntry(String id); + public String createNewStoreEntry(PdfasSignRequest request, StatisticEvent event); + public PdfasSignRequest fetchStoreEntry(String id); + + public String createNewResponseEntry(PdfasSignResponse response); + public PdfasSignResponse fetchStoreResponse(String id); + } diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/store/InMemoryRequestStore.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/store/InMemoryRequestStore.java index f712a894..6ab58ce0 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/store/InMemoryRequestStore.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/store/InMemoryRequestStore.java @@ -23,26 +23,35 @@ ******************************************************************************/ package at.gv.egiz.pdfas.web.store; -import java.util.HashMap; +import java.util.Map; import java.util.UUID; -import at.gv.egiz.pdfas.api.ws.PDFASSignRequest; +import org.apache.commons.collections4.map.PassiveExpiringMap; + +import at.gv.egiz.pdfas.api.processing.PdfasSignRequest; +import at.gv.egiz.pdfas.api.processing.PdfasSignResponse; import at.gv.egiz.pdfas.web.stats.StatisticEvent; public class InMemoryRequestStore implements IRequestStore { + // expires after 10 minutes + private static final long DEFAULT_EXPIRATION = 10 * 60 * 1000; + + private Map<String, PdfasSignRequest> reqStore = new PassiveExpiringMap<>(DEFAULT_EXPIRATION); + private Map<String, PdfasSignResponse> respStore = new PassiveExpiringMap<>(DEFAULT_EXPIRATION); + private Map<String, StatisticEvent> statEvents = new PassiveExpiringMap<>(DEFAULT_EXPIRATION); + public InMemoryRequestStore() { + } - private HashMap<String, PDFASSignRequest> store = new HashMap<String, PDFASSignRequest>(); - private HashMap<String, StatisticEvent> statEvents = new HashMap<String, StatisticEvent>(); - - public String createNewStoreEntry(PDFASSignRequest request, StatisticEvent event) { + public String createNewStoreEntry(PdfasSignRequest request, StatisticEvent event) { UUID id = UUID.randomUUID(); String sid = id.toString(); - this.store.put(sid, request); + this.reqStore.put(sid, request); this.statEvents.put(sid, event); return sid; + } public StatisticEvent fetchStatisticEntry(String id) { @@ -50,17 +59,41 @@ public class InMemoryRequestStore implements IRequestStore { StatisticEvent event = statEvents.get(id); statEvents.remove(id); return event; + } + return null; } - public PDFASSignRequest fetchStoreEntry(String id) { - if(store.containsKey(id)) { - PDFASSignRequest request = store.get(id); - store.remove(id); + public PdfasSignRequest fetchStoreEntry(String id) { + if(reqStore.containsKey(id)) { + PdfasSignRequest request = reqStore.get(id); + reqStore.remove(id); return request; + } + return null; } + @Override + public String createNewResponseEntry(PdfasSignResponse response) { + String sid = UUID.randomUUID().toString(); + this.respStore.put(sid, response); + return sid; + + } + + @Override + public PdfasSignResponse fetchStoreResponse(String id) { + if (respStore.containsKey(id)) { + PdfasSignResponse response = respStore.get(id); + respStore.remove(id); + return response; + + } + + return null; + } + } |