summaryrefslogtreecommitdiff
path: root/eaaf_core_api/src
diff options
context:
space:
mode:
authorThomas Lenz <thomas.lenz@egiz.gv.at>2020-04-01 23:17:27 +0200
committerThomas Lenz <thomas.lenz@egiz.gv.at>2020-04-01 23:17:27 +0200
commita19b85723223dbefff7f34a59421c2d2edf3261f (patch)
tree1de017b7eaa12038a8c23663520fab1780dfc1b2 /eaaf_core_api/src
parenta6539d2b881f1567d77fbc87e3676ffb9ffb9dcb (diff)
downloadEAAF-Components-a19b85723223dbefff7f34a59421c2d2edf3261f.tar.gz
EAAF-Components-a19b85723223dbefff7f34a59421c2d2edf3261f.tar.bz2
EAAF-Components-a19b85723223dbefff7f34a59421c2d2edf3261f.zip
update process-engine support HTTP POST and GET error forwarting.
This is needed for processes in IFrames
Diffstat (limited to 'eaaf_core_api/src')
-rw-r--r--eaaf_core_api/src/main/java/at/gv/egiz/eaaf/core/api/IRequest.java19
-rw-r--r--eaaf_core_api/src/main/java/at/gv/egiz/eaaf/core/api/gui/IGuiBuilderConfigurationFactory.java13
-rw-r--r--eaaf_core_api/src/main/java/at/gv/egiz/eaaf/core/api/idp/auth/services/IProtocolAuthenticationService.java16
3 files changed, 48 insertions, 0 deletions
diff --git a/eaaf_core_api/src/main/java/at/gv/egiz/eaaf/core/api/IRequest.java b/eaaf_core_api/src/main/java/at/gv/egiz/eaaf/core/api/IRequest.java
index 384446b8..05b7784e 100644
--- a/eaaf_core_api/src/main/java/at/gv/egiz/eaaf/core/api/IRequest.java
+++ b/eaaf_core_api/src/main/java/at/gv/egiz/eaaf/core/api/IRequest.java
@@ -263,5 +263,24 @@ public interface IRequest extends Serializable {
* otherwise false
*/
void setAbortedByUser(boolean isAborted);
+
+ /**
+ * Indicates, if the current process stage is in iFrame.
+ *
+ * <p>If the current state is marked as 'in iFrame',
+ * than the process engine will perform an target=_parent hope in case of an error</p>
+ *
+ * @return true, if the process is in iFrame, otherwise false
+ */
+ boolean isProcessInIframe();
+
+ /**
+ * Set the 'isProcessInIframe' flag to this pending-request.
+ *
+ * @param flag true, if the process is in iFrame and needs a target=_parent hope in case of an error
+ */
+ void setProcessInFrame(boolean flag);
+
+
}
diff --git a/eaaf_core_api/src/main/java/at/gv/egiz/eaaf/core/api/gui/IGuiBuilderConfigurationFactory.java b/eaaf_core_api/src/main/java/at/gv/egiz/eaaf/core/api/gui/IGuiBuilderConfigurationFactory.java
index ed888f87..618b5987 100644
--- a/eaaf_core_api/src/main/java/at/gv/egiz/eaaf/core/api/gui/IGuiBuilderConfigurationFactory.java
+++ b/eaaf_core_api/src/main/java/at/gv/egiz/eaaf/core/api/gui/IGuiBuilderConfigurationFactory.java
@@ -22,6 +22,8 @@ package at.gv.egiz.eaaf.core.api.gui;
import java.net.MalformedURLException;
import java.net.URI;
+import javax.annotation.Nonnull;
+
import at.gv.egiz.eaaf.core.api.IRequest;
public interface IGuiBuilderConfigurationFactory {
@@ -35,6 +37,17 @@ public interface IGuiBuilderConfigurationFactory {
IGuiBuilderConfiguration getDefaultErrorGui(String authUrl);
/**
+ * Get a default {@link IGuiBuilderConfiguration} that implements an iFrame to parent hop.
+ *
+ * @param pendingReq Current pending-request object
+ * @param endpoint Request end-point
+ * @param errorKey Error identifier
+ * @return GUIBuilder configuration with parent hop.
+ */
+ IGuiBuilderConfiguration getDefaultIFrameParentHopGui(@Nonnull IRequest pendingReq,
+ @Nonnull String endpoint, @Nonnull String errorKey);
+
+ /**
* Default Velocity based GUI builder configuration.
*
* <p>
diff --git a/eaaf_core_api/src/main/java/at/gv/egiz/eaaf/core/api/idp/auth/services/IProtocolAuthenticationService.java b/eaaf_core_api/src/main/java/at/gv/egiz/eaaf/core/api/idp/auth/services/IProtocolAuthenticationService.java
index 86d15d5b..d1d68c2d 100644
--- a/eaaf_core_api/src/main/java/at/gv/egiz/eaaf/core/api/idp/auth/services/IProtocolAuthenticationService.java
+++ b/eaaf_core_api/src/main/java/at/gv/egiz/eaaf/core/api/idp/auth/services/IProtocolAuthenticationService.java
@@ -27,6 +27,8 @@ import javax.servlet.http.HttpServletResponse;
import at.gv.egiz.eaaf.core.api.IRequest;
import at.gv.egiz.eaaf.core.api.logging.IStatisticLogger;
import at.gv.egiz.eaaf.core.exceptions.EaafException;
+import at.gv.egiz.eaaf.core.exceptions.GuiBuildException;
+import at.gv.egiz.eaaf.core.impl.data.Pair;
public interface IProtocolAuthenticationService {
@@ -92,4 +94,18 @@ public interface IProtocolAuthenticationService {
void handleErrorNoRedirect(Throwable throwable, HttpServletRequest req, HttpServletResponse resp,
boolean writeExceptionToStatisticLog) throws IOException, EaafException;
+ /**
+ * Forward the process to error-handler in case of an error.
+ *
+ * @param errorToHandle Error to handle
+ * @param errorKey ErrorId for error-handler
+ * @param req HTTP response
+ * @param resp HTTP response
+ * @throws GuiBuildException In case of an GUI generation error
+ */
+ void forwardToErrorHandler(Pair<IRequest, Throwable> errorToHandle, String errorKey,
+ HttpServletRequest req, HttpServletResponse resp) throws GuiBuildException;
+
+
+
}