aboutsummaryrefslogtreecommitdiff
path: root/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveGuiAustrianResidenceResponseTask.java
diff options
context:
space:
mode:
Diffstat (limited to 'eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveGuiAustrianResidenceResponseTask.java')
-rw-r--r--eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveGuiAustrianResidenceResponseTask.java79
1 files changed, 59 insertions, 20 deletions
diff --git a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveGuiAustrianResidenceResponseTask.java b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveGuiAustrianResidenceResponseTask.java
index 34fbf507..977262bb 100644
--- a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveGuiAustrianResidenceResponseTask.java
+++ b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveGuiAustrianResidenceResponseTask.java
@@ -23,7 +23,9 @@
package at.asitplus.eidas.specific.modules.auth.eidas.v2.tasks;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.dao.SelectedLoginMethod;
+import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;
+import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.InvalidUserInputException;
+import at.asitplus.eidas.specific.modules.auth.eidas.v2.zmr.IZmrClient;
import at.gv.egiz.eaaf.core.api.data.EaafConstants;
import at.gv.egiz.eaaf.core.api.idp.process.ExecutionContext;
import at.gv.egiz.eaaf.core.exceptions.TaskExecutionException;
@@ -46,33 +48,70 @@ import java.util.Enumeration;
@Component("ReceiveGuiAustrianResidenceResponseTask")
public class ReceiveGuiAustrianResidenceResponseTask extends AbstractAuthServletTask {
- final String loginMethod = "loginSelection";
+ final String formerResidenceAvailableParameterName = "formerResidenceAvailable";
+ final String streetParameterName = "street";
+ final String zipCodeParameterName = "zipcode";
+ final String cityParameterName = "city";
+ private final IZmrClient zmrClient;
+
+ public ReceiveGuiAustrianResidenceResponseTask(IZmrClient zmrClient) {
+ this.zmrClient = zmrClient;
+ }
//TODO
@Override
public void execute(ExecutionContext executionContext, HttpServletRequest request, HttpServletResponse response)
throws TaskExecutionException {
- try {
- log.trace("Starting ReceiveGuiAustrianResidenceResponseTask");
- // set parameter execution context
- final Enumeration<String> reqParamNames = request.getParameterNames();
- while (reqParamNames.hasMoreElements()) {
- final String paramName = reqParamNames.nextElement();
- if (StringUtils.isNotEmpty(paramName)
- && !EaafConstants.PROCESS_ENGINE_PENDINGREQUESTID.equalsIgnoreCase(paramName)
- && loginMethod.equalsIgnoreCase(paramName)) {
- String value = StringEscapeUtils.escapeHtml(request.getParameter(paramName));
- SelectedLoginMethod selection = SelectedLoginMethod.valueOf(value);
- executionContext.put(loginMethod, selection);
-
- }
+ log.trace("Starting ReceiveGuiAustrianResidenceResponseTask");
+ // set parameter execution context
+ final Enumeration<String> reqParamNames = request.getParameterNames();
+ String street = null;
+ String city = null;
+ String zipcode = null;
+ Boolean formerResidenceAvailable = false;
+ while (reqParamNames.hasMoreElements()) {
+ final String paramName = reqParamNames.nextElement();
+ if (StringUtils.isNotEmpty(paramName)
+ && !EaafConstants.PROCESS_ENGINE_PENDINGREQUESTID.equalsIgnoreCase(paramName)
+ && formerResidenceAvailableParameterName.equalsIgnoreCase(paramName)) {
+ formerResidenceAvailable =
+ Boolean.parseBoolean(StringEscapeUtils.escapeHtml(request.getParameter(paramName)));
+ }
+ if (StringUtils.isNotEmpty(paramName)
+ && !EaafConstants.PROCESS_ENGINE_PENDINGREQUESTID.equalsIgnoreCase(paramName)
+ && streetParameterName.equalsIgnoreCase(paramName)) {
+ street = StringEscapeUtils.escapeHtml(request.getParameter(paramName));
+ }
+ if (StringUtils.isNotEmpty(paramName)
+ && !EaafConstants.PROCESS_ENGINE_PENDINGREQUESTID.equalsIgnoreCase(paramName)
+ && cityParameterName.equalsIgnoreCase(paramName)) {
+ city = StringEscapeUtils.escapeHtml(request.getParameter(paramName));
+ }
+ if (StringUtils.isNotEmpty(paramName)
+ && !EaafConstants.PROCESS_ENGINE_PENDINGREQUESTID.equalsIgnoreCase(paramName)
+ && zipCodeParameterName.equalsIgnoreCase(paramName)) {
+ zipcode = StringEscapeUtils.escapeHtml(request.getParameter(paramName));
}
-
- } catch (final Exception e) {
- log.error("Parsing selected login method FAILED.", e);
- throw new TaskExecutionException(pendingReq, "Parsing selected login method FAILED.", e);
}
+ if (formerResidenceAvailable) {
+ //step 18
+ if (street.isEmpty() || city.isEmpty() || zipcode.isEmpty()) {
+ //form should ensure that mandatory fields are field =>
+ //this can never happen, expect somebody manipulated the response
+ throw new TaskExecutionException(pendingReq, "Invalid user input", new InvalidUserInputException());
+ }
+ step18_RegisterSearch(street, city, zipcode);//TODO also MDS?
+ } else {
+ //step 20 or for now (phase 1) step 9
+ executionContext.put(Constants.TRANSITION_TO_CREATE_NEW_ERNB_ENTRY_TASK, true);
+ }
+
+
+ }
+
+ private void step18_RegisterSearch(String street, String city, String zipcode) {
+ System.out.println(street + city + zipcode + zmrClient);//TODO
}
}