aboutsummaryrefslogtreecommitdiff
path: root/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/InitialSearchTask.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/InitialSearchTask.java')
-rw-r--r--eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/InitialSearchTask.java35
1 files changed, 14 insertions, 21 deletions
diff --git a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/InitialSearchTask.java b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/InitialSearchTask.java
index 9e5b4d67..99da21a1 100644
--- a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/InitialSearchTask.java
+++ b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/InitialSearchTask.java
@@ -33,8 +33,10 @@ import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.ManualFixNeces
import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.WorkflowException;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.handler.CountrySpecificDetailSearchProcessor;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.utils.EidasResponseUtils;
+import at.asitplus.eidas.specific.modules.auth.eidas.v2.utils.Utils;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.zmr.IZmrClient;
import at.gv.egiz.eaaf.core.api.idp.process.ExecutionContext;
+import at.gv.egiz.eaaf.core.exceptions.EaafStorageException;
import at.gv.egiz.eaaf.core.exceptions.TaskExecutionException;
import at.gv.egiz.eaaf.core.impl.data.Triple;
import at.gv.egiz.eaaf.core.impl.idp.auth.data.AuthProcessDataWrapper;
@@ -96,19 +98,26 @@ public class InitialSearchTask extends AbstractAuthServletTask {
final SimpleEidasData eidData = convertSimpleMapToSimpleData(convertEidasAttrToSimpleMap(
eidasResponse.getAttributes().getAttributeMap()));
- String bpK = step2RegisterSearchWithPersonidentifier(eidData);
+ String bpK = step2RegisterSearchWithPersonidentifier(eidData, authProcessData);
authProcessData.setGenericDataToSession(Constants.DATA_RESULT_MATCHING_BPK, bpK);
- authProcessData.setGenericDataToSession(Constants.DATA_SIMPLE_EIDAS, eidasResponse);
+ authProcessData.setGenericDataToSession(Constants.DATA_SIMPLE_EIDAS, eidData);
} catch (final Exception e) {
log.error("Initial search FAILED.", e);
throw new TaskExecutionException(pendingReq, "Initial search FAILED.", e);
}
}
- private String step2RegisterSearchWithPersonidentifier(SimpleEidasData eidData) throws TaskExecutionException {
+ private String step2RegisterSearchWithPersonidentifier(SimpleEidasData eidData,
+ AuthProcessDataWrapper authProcessData) throws TaskExecutionException {
log.trace("Starting step2RegisterSearchWithPersonidentifier");
String personIdentifier = eidData.getPseudonym();
MergedRegisterSearchResult result = searchInZmrAndErnp(personIdentifier);
+ //store data in session
+ try {
+ authProcessData.setGenericDataToSession(Constants.DATA_INITIAL_REGISTER_RESULT, result);
+ } catch (EaafStorageException e) {
+ throw new TaskExecutionException(pendingReq, "Initial search - Kitt Process necessary.",e);
+ }
if (result.getResultCount() == 0) {
return step5CheckAndPerformCountrySpecificSearchIfPossible(result, eidData);
} else if (result.getResultCount() == 1) {
@@ -184,24 +193,8 @@ public class InitialSearchTask extends AbstractAuthServletTask {
MergedRegisterSearchResult countrySpecificDetailSearchResult,
SimpleEidasData eidData) throws TaskExecutionException {
log.trace("Starting step7aKittProcess");
- try {
- if (initialSearchResult.getResultCount() != 0) {
- throw new WorkflowException("initialSearchResult.getResultCount() != 0");
- }
- if (countrySpecificDetailSearchResult.getResultCount() != 1) {
- throw new WorkflowException("countrySpecificDetailSearchResult.getResultCount() != 1");
- }
- if (countrySpecificDetailSearchResult.getResultsZmr().size() == 1) {
- zmrClient.update(countrySpecificDetailSearchResult.getResultsZmr().get(0), eidData);
- }
- if (countrySpecificDetailSearchResult.getResultsErnp().size() == 1) {
- ernpClient.update(countrySpecificDetailSearchResult.getResultsErnp().get(0), eidData);
- }
- String bpK = countrySpecificDetailSearchResult.getBpk();
- return bpK;
- } catch (WorkflowException e) {
- throw new TaskExecutionException(pendingReq, "Step7a failed.", e);
- }
+ return Utils.step7aKittProcess(ernpClient, zmrClient, initialSearchResult, countrySpecificDetailSearchResult,
+ eidData, pendingReq);
}
private String step8RegisterSearchWithMds(SimpleEidasData eidData) {