diff options
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.java | 35 |
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) { |