diff options
author | Thomas <> | 2024-06-11 14:43:12 +0200 |
---|---|---|
committer | Thomas <> | 2024-06-11 14:43:12 +0200 |
commit | 4fcb0654e81a0e3abf400dbbbd8d2bedbbf5864d (patch) | |
tree | e0120b397d1166481b636461820df7d4be654a05 /eaaf_core | |
parent | 25fcb34c1f7f8b2483217061425fe35a0cabeb76 (diff) | |
download | EAAF-Components-4fcb0654e81a0e3abf400dbbbd8d2bedbbf5864d.tar.gz EAAF-Components-4fcb0654e81a0e3abf400dbbbd8d2bedbbf5864d.tar.bz2 EAAF-Components-4fcb0654e81a0e3abf400dbbbd8d2bedbbf5864d.zip |
feat(core): add method parameter to define custom max. age for pendingRequestId
Diffstat (limited to 'eaaf_core')
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 |