aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Marsalek <amarsalek@iaik.tugraz.at>2021-01-04 20:29:25 +0100
committerAlexander Marsalek <amarsalek@iaik.tugraz.at>2021-01-04 20:29:25 +0100
commit03830b4462b3f11acd28a63ab05c3105bc19e094 (patch)
treeadfa98c2b8284fa56be1af55f35f281dca13a873
parent81187bb7c831cf2982f82a60e58f3a5151efb78e (diff)
downloadNational_eIDAS_Gateway-03830b4462b3f11acd28a63ab05c3105bc19e094.tar.gz
National_eIDAS_Gateway-03830b4462b3f11acd28a63ab05c3105bc19e094.tar.bz2
National_eIDAS_Gateway-03830b4462b3f11acd28a63ab05c3105bc19e094.zip
Gui creation part 1
-rw-r--r--connector_lib/src/main/java/at/asitplus/eidas/specific/connector/MsEidasNodeConstants.java7
-rw-r--r--eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/dao/SelectedLoginMethod.java5
-rw-r--r--eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/CreateNewErnbEntryTask.java2
-rw-r--r--eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/GenerateGuiTask.java (renamed from eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/GenerateGuiRequestTask.java)28
-rw-r--r--eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/GenerateMobilePhoneSignatureRequestTask.java2
-rw-r--r--eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveGuiResponseTask.java26
-rw-r--r--eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveMobilePhoneSignatureResponseTask.java2
7 files changed, 59 insertions, 13 deletions
diff --git a/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/MsEidasNodeConstants.java b/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/MsEidasNodeConstants.java
index b1ef799f..42fefaab 100644
--- a/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/MsEidasNodeConstants.java
+++ b/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/MsEidasNodeConstants.java
@@ -46,7 +46,9 @@ public class MsEidasNodeConstants {
public static final String PROP_CONFIG_WEBCONTENT_TEMPLATES_PATH = "webcontent.templates";
public static final String PROP_CONFIG_WEBCONTENT_TEMPLATES_CCSELECTION = "webcontent.templates.countryselection";
-
+ public static final String PROP_CONFIG_WEBCONTENT_TEMPLATES_OTHER_LOGIN_METHOD_SELECTION = "webcontent.templates" +
+ ".otherLoginMethodselection";
+
public static final String PROP_CONFIG_MONITORING_EIDASNODE_METADATAURL =
"monitoring.eIDASNode.metadata.url";
@@ -139,6 +141,7 @@ public class MsEidasNodeConstants {
public static final String ENDPOINT_PVP_REDIRECT = "/pvp/redirect";
public static final String ENDPOINT_COUNTRYSELECTION = "/myHomeCountry";
+ public static final String ENDPOINT_OTHERLOGINMETHODSELECTION = "/otherLoginMethod";
public static final String ENDPOINT_MONITORING_MONITOR = "/monitoring";
public static final String ENDPOINT_MONITORING_VERIFY = "/verify";
@@ -150,7 +153,7 @@ public class MsEidasNodeConstants {
public static final String TEMPLATE_HTML_ERROR = "error_message.html";
public static final String TEMPLATE_HTML_PVP_POSTBINDING = "pvp2_post_binding.html";
public static final String TEMPLATE_HTML_COUNTRYSELECTION = "countrySelection.html";
-
+ public static final String TEMPLATE_HTML_OTHERLOGINMETHODS = "chooseOtherLoginMethod.html";
// ************ execution context and generic data ************
public static final String REQ_PARAM_SELECTED_COUNTRY = "selectedCountry";
public static final String REQ_PARAM_SELECTED_ENVIRONMENT = "selectedEnvironment";
diff --git a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/dao/SelectedLoginMethod.java b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/dao/SelectedLoginMethod.java
new file mode 100644
index 00000000..f8e2ff2e
--- /dev/null
+++ b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/dao/SelectedLoginMethod.java
@@ -0,0 +1,5 @@
+package at.asitplus.eidas.specific.modules.auth.eidas.v2.dao;
+
+public enum SelectedLoginMethod {
+ EIDAS_LOGIN, MOBILE_PHONE_SIGNATURE_LOGIN, NO_OTHER_LOGIN
+}
diff --git a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/CreateNewErnbEntryTask.java b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/CreateNewErnbEntryTask.java
index 1e07377f..77d6ed41 100644
--- a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/CreateNewErnbEntryTask.java
+++ b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/CreateNewErnbEntryTask.java
@@ -38,7 +38,7 @@ import javax.servlet.http.HttpServletResponse;
* @author tlenz
*/
@Slf4j
-@Component("InitialSearchTask")
+@Component("CreateNewErnbEntryTask")
// NOTE: General: Please rebase git commit and squash them where useful, i.e. "remove unused import" should
// not be a separate commit.
public class CreateNewErnbEntryTask extends AbstractAuthServletTask {
diff --git a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/GenerateGuiRequestTask.java b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/GenerateGuiTask.java
index df4cd812..d55d4a7e 100644
--- a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/GenerateGuiRequestTask.java
+++ b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/GenerateGuiTask.java
@@ -23,10 +23,16 @@
package at.asitplus.eidas.specific.modules.auth.eidas.v2.tasks;
+import at.asitplus.eidas.specific.connector.MsEidasNodeConstants;
+import at.asitplus.eidas.specific.connector.gui.StaticGuiBuilderConfiguration;
+import at.gv.egiz.eaaf.core.api.gui.IGuiBuilderConfiguration;
+import at.gv.egiz.eaaf.core.api.gui.ISpringMvcGuiFormBuilder;
+import at.gv.egiz.eaaf.core.api.idp.IConfiguration;
import at.gv.egiz.eaaf.core.api.idp.process.ExecutionContext;
import at.gv.egiz.eaaf.core.exceptions.TaskExecutionException;
import at.gv.egiz.eaaf.core.impl.idp.auth.modules.AbstractAuthServletTask;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletRequest;
@@ -38,11 +44,15 @@ import javax.servlet.http.HttpServletResponse;
* @author tlenz
*/
@Slf4j
-@Component("InitialSearchTask")
+@Component("GenerateGuiTask")
// NOTE: General: Please rebase git commit and squash them where useful, i.e. "remove unused import" should
// not be a separate commit.
-public class GenerateGuiRequestTask extends AbstractAuthServletTask {
+public class GenerateGuiTask extends AbstractAuthServletTask {
+ @Autowired
+ ISpringMvcGuiFormBuilder guiBuilder;
+ @Autowired
+ IConfiguration basicConfig;
/*
* (non-Javadoc)
@@ -56,10 +66,20 @@ public class GenerateGuiRequestTask extends AbstractAuthServletTask {
public void execute(ExecutionContext executionContext, HttpServletRequest request, HttpServletResponse response)
throws TaskExecutionException {
try {
- //TODO
+ final IGuiBuilderConfiguration config = new StaticGuiBuilderConfiguration(
+ basicConfig,
+ pendingReq,
+ basicConfig.getBasicConfiguration(
+ MsEidasNodeConstants.PROP_CONFIG_WEBCONTENT_TEMPLATES_OTHER_LOGIN_METHOD_SELECTION,
+ MsEidasNodeConstants.TEMPLATE_HTML_OTHERLOGINMETHODS),
+ MsEidasNodeConstants.ENDPOINT_OTHERLOGINMETHODSELECTION,
+ resourceLoader);
+
+ guiBuilder.build(request, response, config, "Other login methods selection form");
+
} catch (final Exception e) {
log.error("Initial search FAILED.", e);
- throw new TaskExecutionException(pendingReq, "Initial search FAILED.", e);
+ throw new TaskExecutionException(pendingReq, "Gui creation FAILED.", e);
}
}
diff --git a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/GenerateMobilePhoneSignatureRequestTask.java b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/GenerateMobilePhoneSignatureRequestTask.java
index 4220a822..c9974509 100644
--- a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/GenerateMobilePhoneSignatureRequestTask.java
+++ b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/GenerateMobilePhoneSignatureRequestTask.java
@@ -38,7 +38,7 @@ import javax.servlet.http.HttpServletResponse;
* @author tlenz
*/
@Slf4j
-@Component("InitialSearchTask")
+@Component("GenerateMobilePhoneSignatureRequestTask")
// NOTE: General: Please rebase git commit and squash them where useful, i.e. "remove unused import" should
// not be a separate commit.
public class GenerateMobilePhoneSignatureRequestTask extends AbstractAuthServletTask {
diff --git a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveGuiResponseTask.java b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveGuiResponseTask.java
index 692e844a..b0cb857e 100644
--- a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveGuiResponseTask.java
+++ b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveGuiResponseTask.java
@@ -23,14 +23,19 @@
package at.asitplus.eidas.specific.modules.auth.eidas.v2.tasks;
+import at.asitplus.eidas.specific.modules.auth.eidas.v2.dao.SelectedLoginMethod;
+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;
import at.gv.egiz.eaaf.core.impl.idp.auth.modules.AbstractAuthServletTask;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringEscapeUtils;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import java.util.Enumeration;
/**
* Task that searches ErnB and ZMR before adding person to SZR.
@@ -38,11 +43,12 @@ import javax.servlet.http.HttpServletResponse;
* @author tlenz
*/
@Slf4j
-@Component("InitialSearchTask")
+@Component("ReceiveGuiResponseTask")
// NOTE: General: Please rebase git commit and squash them where useful, i.e. "remove unused import" should
// not be a separate commit.
public class ReceiveGuiResponseTask extends AbstractAuthServletTask {
+ final String LOGIN_METHOD = "loginSelection";
/*
* (non-Javadoc)
@@ -56,10 +62,22 @@ public class ReceiveGuiResponseTask extends AbstractAuthServletTask {
public void execute(ExecutionContext executionContext, HttpServletRequest request, HttpServletResponse response)
throws TaskExecutionException {
try {
- //TODO
+ // 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)) {
+ if (LOGIN_METHOD.equalsIgnoreCase(paramName)) {
+ String value = StringEscapeUtils.escapeHtml(request.getParameter(paramName));
+ SelectedLoginMethod selection = SelectedLoginMethod.valueOf(value);
+ executionContext.put(LOGIN_METHOD, selection);
+ }
+ }
+ }
} catch (final Exception e) {
- log.error("Initial search FAILED.", e);
- throw new TaskExecutionException(pendingReq, "Initial search FAILED.", e);
+ log.error("Parsing selected login method FAILED.", e);
+ throw new TaskExecutionException(pendingReq, "Parsing selected login method FAILED.", e);
}
}
diff --git a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveMobilePhoneSignatureResponseTask.java b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveMobilePhoneSignatureResponseTask.java
index a8790b2f..28c351f2 100644
--- a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveMobilePhoneSignatureResponseTask.java
+++ b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/ReceiveMobilePhoneSignatureResponseTask.java
@@ -38,7 +38,7 @@ import javax.servlet.http.HttpServletResponse;
* @author tlenz
*/
@Slf4j
-@Component("InitialSearchTask")
+@Component("ReceiveMobilePhoneSignatureResponseTask")
// NOTE: General: Please rebase git commit and squash them where useful, i.e. "remove unused import" should
// not be a separate commit.
public class ReceiveMobilePhoneSignatureResponseTask extends AbstractAuthServletTask {