diff options
author | Thomas Lenz <thomas.lenz@egiz.gv.at> | 2020-04-01 23:17:27 +0200 |
---|---|---|
committer | Thomas Lenz <thomas.lenz@egiz.gv.at> | 2020-04-01 23:17:27 +0200 |
commit | a19b85723223dbefff7f34a59421c2d2edf3261f (patch) | |
tree | 1de017b7eaa12038a8c23663520fab1780dfc1b2 /eaaf_core_api | |
parent | a6539d2b881f1567d77fbc87e3676ffb9ffb9dcb (diff) | |
download | EAAF-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')
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; + + + } |