aboutsummaryrefslogtreecommitdiff
path: root/pdf-as-web/src/main/java/at/gv
diff options
context:
space:
mode:
authorJakob Heher <jakob.heher@iaik.tugraz.at>2026-06-12 14:03:22 +0200
committerGitHub <noreply@github.com>2026-06-12 14:03:22 +0200
commitce9f7ae9d70582bb07e1436360b1eab927c81bf0 (patch)
treed11551cedfdb7d1b054b1684efd9d84a63f3ad81 /pdf-as-web/src/main/java/at/gv
parent326c1cd1a7340932b027266927dda1bb60555032 (diff)
downloadpdf-as-4-ce9f7ae9d70582bb07e1436360b1eab927c81bf0.tar.gz
pdf-as-4-ce9f7ae9d70582bb07e1436360b1eab927c81bf0.tar.bz2
pdf-as-4-ce9f7ae9d70582bb07e1436360b1eab927c81bf0.zip
Fix pdf-as-web-db data model (#97)
* also delete packaged release builds when running gradle clean * fix & test pdf-as-web-db - rename column for `end` - fix embeddable data model for statisticevent - fix storage model to store sign request and statistic event paired
Diffstat (limited to 'pdf-as-web/src/main/java/at/gv')
-rw-r--r--pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/UIEntryPointServlet.java9
-rw-r--r--pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/store/IRequestStore.java4
-rw-r--r--pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/store/InMemoryRequestStore.java31
-rw-r--r--pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/store/RequestStore.java2
4 files changed, 18 insertions, 28 deletions
diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/UIEntryPointServlet.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/UIEntryPointServlet.java
index 9c20e1a1..51cc5573 100644
--- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/UIEntryPointServlet.java
+++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/UIEntryPointServlet.java
@@ -42,6 +42,7 @@ import at.gv.egiz.pdfas.web.helper.PdfAsHelper;
import at.gv.egiz.pdfas.web.stats.StatisticEvent;
import at.gv.egiz.pdfas.web.store.RequestStore;
import lombok.extern.slf4j.Slf4j;
+import lombok.val;
@Slf4j
public class UIEntryPointServlet extends HttpServlet {
@@ -76,16 +77,16 @@ public class UIEntryPointServlet extends HttpServlet {
throw new PdfAsStoreException("Wrong Parameters");
}
- PdfasSignRequest pdfAsRequest = RequestStore.getInstance()
+ val storeEntry = RequestStore.getInstance()
.fetchStoreEntry(storeId);
- if (pdfAsRequest == null) {
+ if (storeEntry == null) {
throw new PdfAsStoreException("Invalid " + REQUEST_ID_PARAM
+ " value");
}
- StatisticEvent statisticEvent = RequestStore.getInstance()
- .fetchStatisticEntry(storeId);
+ val pdfAsRequest = storeEntry.getFirst();
+ val statisticEvent = storeEntry.getSecond();
PdfAsHelper.setStatisticEvent(req, resp, statisticEvent);
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 643d3ea0..fdcded6c 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
@@ -26,11 +26,11 @@ package at.gv.egiz.pdfas.web.store;
import at.gv.egiz.pdfas.api.processing.PdfasSignRequest;
import at.gv.egiz.pdfas.api.processing.PdfasSignResponse;
import at.gv.egiz.pdfas.web.stats.StatisticEvent;
+import kotlin.Pair;
public interface IRequestStore {
- public StatisticEvent fetchStatisticEntry(String id);
public String createNewStoreEntry(PdfasSignRequest request, StatisticEvent event);
- public PdfasSignRequest fetchStoreEntry(String id);
+ public Pair<PdfasSignRequest, StatisticEvent> 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 6ab58ce0..378714e4 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
@@ -26,6 +26,8 @@ package at.gv.egiz.pdfas.web.store;
import java.util.Map;
import java.util.UUID;
+import kotlin.Pair;
+import lombok.val;
import org.apache.commons.collections4.map.PassiveExpiringMap;
import at.gv.egiz.pdfas.api.processing.PdfasSignRequest;
@@ -37,40 +39,27 @@ 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, Pair<PdfasSignRequest, StatisticEvent>> 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() {
}
-
+
+ @Override
public String createNewStoreEntry(PdfasSignRequest request, StatisticEvent event) {
UUID id = UUID.randomUUID();
String sid = id.toString();
- this.reqStore.put(sid, request);
- this.statEvents.put(sid, event);
+ this.reqStore.put(sid, new Pair<>(request, event));
return sid;
-
}
- public StatisticEvent fetchStatisticEntry(String id) {
- if(statEvents.containsKey(id)) {
- StatisticEvent event = statEvents.get(id);
- statEvents.remove(id);
- return event;
-
- }
-
- return null;
- }
-
- public PdfasSignRequest fetchStoreEntry(String id) {
+ @Override
+ public Pair<PdfasSignRequest, StatisticEvent> fetchStoreEntry(String id) {
if(reqStore.containsKey(id)) {
- PdfasSignRequest request = reqStore.get(id);
+ val storeEntry = reqStore.get(id);
reqStore.remove(id);
- return request;
-
+ return storeEntry;
}
return null;
diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/store/RequestStore.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/store/RequestStore.java
index 5ed2bef0..e39e9399 100644
--- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/store/RequestStore.java
+++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/store/RequestStore.java
@@ -49,7 +49,7 @@ public class RequestStore {
throw new PdfAsStoreException("Failed to instantiate Request Store from " + storeClass);
}
} catch (Throwable e) {
- e.printStackTrace();
+ logger.error("Failed to instantiate Request Store", e);
throw new PdfAsStoreException("Failed to instantiate Request Store", e);
}
}