summaryrefslogtreecommitdiff
path: root/eaaf_core
diff options
context:
space:
mode:
Diffstat (limited to 'eaaf_core')
-rw-r--r--eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/RequestStorage.java10
-rw-r--r--eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/controller/AbstractProcessEngineSignalController.java17
2 files changed, 24 insertions, 3 deletions
diff --git a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/RequestStorage.java b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/RequestStorage.java
index db13bf71..1bc40720 100644
--- a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/RequestStorage.java
+++ b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/RequestStorage.java
@@ -47,13 +47,19 @@ public class RequestStorage implements IRequestStorage {
@Autowired(required = true)
IPendingRequestIdGenerationStrategy pendingReqIdGenerationStrategy;
- @Override
public IRequest getPendingRequest(final String pendingReqID)
throws PendingReqIdValidationException {
+ return getPendingRequest(pendingReqID, -1);
+
+ }
+
+ @Override
+ public IRequest getPendingRequest(final String pendingReqID, int maxPendingRequestIdAge)
+ throws PendingReqIdValidationException {
try {
final String internalPendingReqId =
- pendingReqIdGenerationStrategy.validateAndGetPendingRequestId(pendingReqID);
+ pendingReqIdGenerationStrategy.validateAndGetPendingRequestId(pendingReqID, maxPendingRequestIdAge);
log.debug("PendingReqId is valid");
// get pending-request from storage
diff --git a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/controller/AbstractProcessEngineSignalController.java b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/controller/AbstractProcessEngineSignalController.java
index 17d240cb..706b8fb2 100644
--- a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/controller/AbstractProcessEngineSignalController.java
+++ b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/controller/AbstractProcessEngineSignalController.java
@@ -29,6 +29,7 @@ import at.gv.egiz.eaaf.core.api.IRequestStorage;
import at.gv.egiz.eaaf.core.api.IStatusMessenger;
import at.gv.egiz.eaaf.core.api.data.EaafConstants;
import at.gv.egiz.eaaf.core.api.idp.process.ProcessEngine;
+import at.gv.egiz.eaaf.core.api.utils.IPendingRequestIdGenerationStrategy;
import at.gv.egiz.eaaf.core.exceptions.EaafException;
import at.gv.egiz.eaaf.core.exceptions.EaafIllegalStateException;
import at.gv.egiz.eaaf.core.exceptions.PendingReqIdValidationException;
@@ -62,7 +63,7 @@ public abstract class AbstractProcessEngineSignalController extends AbstractCont
}
- pendingReq = requestStorage.getPendingRequest(pendingRequestID);
+ pendingReq = requestStorage.getPendingRequest(pendingRequestID, getMaxPendingReqIdAge());
if (pendingReq == null) {
log.info("No PendingRequest with Id: " + pendingRequestID
+ " Maybe, a transaction timeout occure.");
@@ -102,6 +103,20 @@ public abstract class AbstractProcessEngineSignalController extends AbstractCont
}
+ /**
+ * Defines max. age of pendingrequestId for validation.
+ *
+ * <p>
+ * Default implementation set -1 and uses default value of
+ * {@link IPendingRequestIdGenerationStrategy}
+ * </p>
+ *
+ * @return max. age in seconds, or -1 if default value should be used
+ */
+ protected int getMaxPendingReqIdAge() {
+ return -1;
+
+ }
/**
* Retrieves the current pending-request id from the HttpServletRequest